Saya memiliki yang berikut ini:
<div>{{modal.title}}</div>
Apakah ada cara agar saya dapat membatasi panjang string untuk mengatakan 20 karakter?
Dan pertanyaan yang lebih baik adalah apakah ada cara saya bisa mengubah string untuk dipotong dan ditampilkan ...
di akhir jika lebih dari 20 karakter?
Jawaban:
Edit Versi terbaru dari filter
AngularJS
penawaranlimitTo
.Anda memerlukan filter khusus seperti ini:
Pemakaian:
Pilihan:
Solusi lain : http://ngmodules.org/modules/angularjs-truncate (oleh @Ehvince)
sumber
Berikut adalah perbaikan satu baris sederhana tanpa css.
sumber
'...'
Anda juga dapat menggunakan entitas HTML untuk ellipsis:'…'
Saya tahu ini terlambat, tetapi dalam versi terbaru dari angularjs (Saya menggunakan 1.2.16) filter limitTo mendukung string dan juga array sehingga Anda dapat membatasi panjang string seperti ini:
yang akan menghasilkan:
sumber
Anda cukup menambahkan kelas css ke div, dan menambahkan tip alat melalui angularjs sehingga teks yang dipangkas akan terlihat di mouse.
sumber
ng-repeat
.Saya punya masalah serupa, berikut ini yang saya lakukan:
sumber
sumber
Solusi yang lebih elegan:
HTML:
Kode Sudut:
Demo:
http://code-chunk.com/chunks/547bfb3f15aa1/str-limit-implementation-for-angularjs
sumber
input
nilainya dinamis? yaitu kalauif (!input) {return;}
tidak akan ada kesalahan konsol JSKarena kita membutuhkan ellipsis hanya ketika panjang string melebihi batas, tampaknya lebih tepat untuk menambahkan ellipsis dengan menggunakan
ng-if
daripada mengikat.sumber
Ada opsi
sumber
Solusi paling sederhana yang saya temukan untuk membatasi panjang string adalah
{{ modal.title | slice:0:20 }}
, dan kemudian meminjam dari @Govan di atas dapat Anda gunakan{{ modal.title.length > 20 ? '...' : ''}}
untuk menambahkan titik-titik suspensi jika string lebih panjang dari 20, sehingga hasil akhirnya adalah:{{ modal.title | slice:0:20 }}{{ modal.title.length > 20 ? '...' : ''}}
https://angular.io/docs/ts/latest/api/common/index/SlicePipe-pipe.html
sumber
Berikut filter khusus untuk memotong teks. Ini terinspirasi oleh solusi EpokK tetapi dimodifikasi untuk kebutuhan dan selera saya.
Dan di sini adalah unit test sehingga Anda dapat melihat bagaimana seharusnya berperilaku:
sumber
Anda dapat membatasi panjang string atau array dengan menggunakan filter. Periksa ini ditulis oleh tim AngularJS.
sumber
Dalam html ini digunakan bersama dengan filter limitTo yang disediakan oleh angular itu sendiri seperti di bawah ini ,
filter keepDots:
sumber
Jika Anda menginginkan sesuatu seperti: InputString => StringPart1 ... StringPart2
HTML:
Kode Sudut:
Contoh dengan parameter berikut:
beginLimit = 10
endLimit = 20
Sebelum : - /home/house/room/etc/ava_B0363852D549079E3720DF6680E17036.jar
Setelah : - /home/hous...3720DF6680E17036.jar
sumber
sumber
Ini mungkin bukan dari akhir skrip tetapi Anda dapat menggunakan css di bawah ini dan menambahkan kelas ini ke div. Ini akan memotong teks dan juga menampilkan teks lengkap di atas mouse. Anda dapat menambahkan lebih banyak teks dan menambahkan hadler klik sudut untuk mengubah kelas div di cli
sumber
Jika Anda memiliki dua binding
{{item.name}}
dan{{item.directory}}
.Dan ingin menampilkan data sebagai direktori diikuti dengan nama, dengan asumsi '/ root' sebagai direktori dan 'Mesin' sebagai nama (/ root-mesin).
sumber
Anda dapat menggunakan modul npm ini: https://github.com/sparkalow/angular-truncate
Suntikkan filter terpotong ke modul aplikasi Anda seperti ini:
dan terapkan filter di aplikasi Anda dengan cara ini:
sumber
sumber
Saya membuat arahan ini yang dengan mudah melakukan itu, memotong string ke batas yang ditentukan dan menambahkan "show more / less" toggle. Anda dapat menemukannya di GitHub: https://github.com/doukasd/AngularJS-Components
dapat digunakan seperti ini:
Inilah arahannya:
Dan beberapa CSS untuk digunakan:
sumber
Solusi ini murni menggunakan ng tag pada HTML.
Solusinya adalah membatasi teks panjang yang ditampilkan dengan tautan 'tunjukkan lebih lanjut ...' di bagian akhir. Jika pengguna mengeklik tautan 'tunjukkan lebih lanjut ...', itu akan menampilkan seluruh teks dan menghapus tautan 'tampilkan lebih banyak ...'.
HTML:
sumber
SOLUSI TERMUDAH -> yang saya temukan adalah membiarkan Material Design (1.0.0-rc4) melakukan pekerjaannya. The
md-input-container
akan melakukan pekerjaan untuk Anda. Ini merangkai string dan menambahkan elipses plus memiliki keuntungan ekstra memungkinkan Anda mengkliknya untuk mendapatkan teks lengkap sehingga seluruh enchilada. Anda mungkin perlu mengatur lebarmd-input-container
.HTML:
CS:
sumber
Batasi jumlah kata dengan filter Angular khusus: Berikut adalah cara saya menggunakan filter Angular untuk membatasi jumlah kata yang ditampilkan menggunakan filter khusus.
HTML:
Kode Sudut / Javascript
sumber
Ini berfungsi baik untuk saya 'Dalam rentang', ng-show = "MyCtrl.value. $ ViewValue.length> your_limit" ... baca selengkapnya. 'rentang akhir'
sumber
Saya menggunakan seperangkat pustaka filter yang berguna "Angular-filter" dan salah satunya disebut "truncate" juga berguna.
https://github.com/a8m/angular-filter#truncate
penggunaannya adalah:
sumber