Apakah ada cara agar saya bisa membatasi panjang string menjadi karakter angka? misalnya: Saya harus membatasi panjang judul menjadi 20 {{ data.title }}
.
Apakah ada pipa atau filter untuk membatasi panjangnya?
Apakah ada cara agar saya bisa membatasi panjang string menjadi karakter angka? misalnya: Saya harus membatasi panjang judul menjadi 20 {{ data.title }}
.
Apakah ada pipa atau filter untuk membatasi panjangnya?
Dua cara untuk memotong teks menjadi bersudut.
let str = 'How to truncate text in angular';
1. Solusi
{{str | slice:0:6}}
Keluaran:
how to
Jika Anda ingin menambahkan teks apa pun setelah string irisan seperti
{{ (str.length>6)? (str | slice:0:6)+'..':(str) }}
Keluaran:
how to...
2. Solusi (Buat pipa khusus)
jika Anda ingin membuat pipa potong kustom
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'truncate'
})
export class TruncatePipe implements PipeTransform {
transform(value: string, args: any[]): string {
const limit = args.length > 0 ? parseInt(args[0], 10) : 20;
const trail = args.length > 1 ? args[1] : '...';
return value.length > limit ? value.substring(0, limit) + trail : value;
}
}
Di Markup
{{ str | truncate:[20] }} // or
{{ str | truncate:[20, '...'] }} // or
Jangan lupa untuk menambahkan entri modul.
@NgModule({
declarations: [
TruncatePipe
]
})
export class AppModule {}
return value && value.length > limit ? value.substring(0, limit) + trail : value;
transform(value: string, args: string[]): string
harustransform(value: string, args: any[]): string
karena argumen pertama yang diberikan ke pipa adalah angka.Truncate Pipe dengan parameter opsional :
-
Jangan lupa untuk menambahkan entri modul.
Pemakaian
Contoh String:
Markup:
sumber
limit = value.substr(0, 13).lastIndexOf(' ');
seharusnya begitulimit = value.substr(0, limit).lastIndexOf(' ');
.if (!value) { return ''; }
danif (value.length <= limit) { return value; }
${value.substr(0, limit)}${ellipsis}
; } `Anda dapat memotong teks berdasarkan CSS. Ini membantu untuk memotong teks berdasarkan lebar bukan memperbaiki karakter.
Contoh
CSS
HTML
Catatan: kode ini menggunakan penuh untuk satu baris tidak untuk lebih dari satu.
Solusi Ketan adalah yang terbaik jika Anda ingin melakukannya dengan Angular
sumber
Saya telah menggunakan modul ini ng2 truncate , ini cukup mudah, impor modul dan Anda siap untuk pergi ... di {{data.title | potong: 20}}
sumber
Berikut adalah pendekatan alternatif menggunakan
interface
untuk mendeskripsikan bentuk objek opsi yang akan diteruskan melaluipipe
di markup.Kemudian di markup Anda:
sumber
Sangat sederhana menggunakan slice pipe (pipa inti bersudut), seperti yang Anda minta
data.title
:Dari dokumen umum Angular https://angular.io/api/common/SlicePipe
sumber
Jika Anda ingin memotong sejumlah kata dan menambahkan elipsis, Anda dapat menggunakan fungsi ini:
Contoh:
diambil dari: https://github.com/yellowspot/ng2-truncate/blob/master/src/truncate-words.pipe.ts
Jika Anda ingin memotong beberapa huruf tetapi tidak memotong kata, gunakan ini:
Contoh:
sumber
Baru saja mencoba jawaban @Timothy Perez dan menambahkan baris
untuk
sumber
Coba yang ini, jika Anda ingin memotong berdasarkan Kata-kata alih-alih karakter sambil juga mengizinkan opsi untuk melihat teks lengkap.
Datang ke sini mencari solusi Baca Lebih Lanjut berdasarkan kata-kata , berbagi kebiasaan yang
Pipe
akhirnya saya tulis.Pipa:
Dalam Template:
Komponen:
Dalam Modul:
sumber