Saya telah melihat pertanyaan SO ini .
Kode saya alih-alih ng-bind="item.desc"
menggunakan {{item.desc}}
karena saya punya ng-repeat
sebelumnya.
Jadi kode saya:
<div ng-repeat="item in items">
{{item.description}}
</div>
Deskripsi item berisi \n
baris baru yang tidak dirender.
Bagaimana cara {{item.description}}
menampilkan baris baru dengan mudah dengan asumsi saya memiliki di ng-repeat
atas?
angularjs
angularjs-ng-repeat
Diolor
sumber
sumber
div
denganstyle="white-space:pre-wrap;"
.Jawaban:
Berdasarkan jawaban @pilau - tetapi dengan peningkatan yang bahkan jawaban yang diterima tidak memiliki.
Ini akan menggunakan baris baru dan spasi putih seperti yang diberikan, tetapi juga memecah konten di batas konten. Informasi lebih lanjut tentang properti white-space dapat ditemukan di sini:
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
Jika Anda ingin memecah baris baru, tetapi juga menciutkan banyak spasi atau ruang putih sebelum teks (sangat mirip dengan perilaku browser asli), Anda dapat menggunakan, seperti yang disarankan @aaki:
Perbandingan mode rendering yang berbeda: http://meyerweb.com/eric/css/tests/white-space.html
sumber
pre-line
disukai? Ini lebih dekat dengan cara HTML biasanya membuat konten teks dari node-nya dan tetap mempertahankan baris baru.pre-line
adalah cara untuk pergi. Terima kasih paul!Mencoba:
The
<pre>
wrapper akan mencetak teks dengan\n
sebagai teksjuga jika Anda mencetak json, agar lebih baik gunakan
json
filter, seperti:Demo
Saya setuju dengan
@Paul Weber
ituwhite-space: pre-wrap;
adalah pendekatan yang lebih baik, bagaimanapun menggunakan<pre>
- cara cepat sebagian besar untuk men-debug beberapa hal (jika Anda tidak ingin membuang waktu untuk styling)sumber
\n
dalam bidang yang saya tidak tahu, tidak pada akhirnya. Saya pikir saya perlupre
berdasarkan hasil edit Anda.@pilau
jawaban Anda benar, tetapi itu tidak berarti bahwa jawaban saya salah dan karena itu saya\n
menjadi<br/>
dan kemudian tentu saja tag ini tidak diterjemahkan sebagai markup HTML ... setelah semua konversi ini menemukanstyle
solusi Anda dan ini adalah bantuan dan penyederhanaan yang luar biasa ... sekarang saya tidak harus terus mengonversi semua data backend saya dan hanya membuat beberapa perubahan dalam Tampilan ... Anda layak +1000!Ini sangat sederhana dengan CSS (berfungsi, saya bersumpah).
sumber
pre
tag. Mungkin membuka pertanyaan lain? Atau mungkin saya melewatkan poin Anda?Dengan CSS ini dapat dicapai dengan mudah.
Atau kelas CSS dapat dibuat untuk tujuan ini dan dapat digunakan dari file CSS eksternal
sumber
Yah itu tergantung, jika Anda ingin mengikat data, seharusnya tidak ada format di dalamnya, jika tidak Anda bisa
bind-html
dandescription.replace(/\\n/g, '<br>')
tidak yakin itu yang Anda inginkan.sumber
solusi css bekerja, namun Anda tidak benar-benar mendapatkan kontrol pada penataan. Dalam kasus saya, saya ingin sedikit lebih banyak ruang setelah jeda baris. Berikut adalah arahan yang saya buat untuk menangani ini (naskah):
Menggunakan:
Yang dilakukannya hanyalah membungkus setiap bagian teks menjadi sebuah
<p>
tag. Setelah itu Anda bisa menatanya sesuka Anda.sumber
Cukup tambahkan ini ke gaya Anda, ini bekerja untuk saya
Dengan teks ini
<textarea>
dapat ditampilkan karena ada di sana dengan spasi dan rem garisHTML
CSS
sumber
Ya, saya akan menggunakan
<pre>
tag atau menggunakanng-bind-html-unsafe
http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngBindHtmlUnsafe (gunakan ng-bind-html jika Anda menggunakan 1.2+) setelah menggunakan.replace()
untuk ubah/n
ke<br />
sumber
ng-bind-html-unsafe
sudah usangCukup gunakan gaya css "white-space: pre-wrap" dan Anda harus siap. Saya pernah mengalami masalah yang sama di mana saya perlu menangani pesan kesalahan yang garis putus dan spasi putih benar-benar khusus. Saya baru saja menambahkan inline ini di mana saya mengikat data dan berfungsi seperti Charm!
sumber
Saya punya masalah yang sama dengan Anda. Saya tidak terlalu tertarik pada jawaban lain di sini karena mereka tidak benar-benar memungkinkan Anda untuk merancang perilaku baris baru dengan sangat mudah. Saya tidak yakin apakah Anda memiliki kontrol atas data asli, tetapi solusi yang saya adopsi adalah untuk beralih "item" dari menjadi array string menjadi array array, di mana setiap item dalam array kedua berisi baris teks . Dengan begitu Anda dapat melakukan sesuatu seperti:
Dengan cara ini Anda bisa menerapkan kelas pada paragraf dan menatanya dengan CSS.
sumber