de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 Diolor
Diolor
Question

Melestarikan garis istirahat di angularjs

Saya telah melihat ini JADI pertanyaan.

Kode saya bukan ng-bind="item.desc" menggunakan {{item.desc}} karena aku punya ng-repeat sebelumnya.

Jadi kode saya:

<div ng-repeat="item in items">
  {{item.description}}
</div>

Deskripsi item berisi \n untuk baris yang tidak diberikan.

Bagaimana bisa {{item.keterangan}} menampilkan baris baru dengan mudah dengan asumsi bahwa saya memiliki ng-repeat di atas?

168 2013-10-30T14:13:44+00:00 10
 Community
Community
Pertanyaan edit 23 Mei 2017 в 11:33
Pemrograman
angularjs
angularjs-ng-repeat
Solution / Answer
Paul Weber
Paul Weber
1 Oktober 2014 в 1:07
2014-10-01T13:07:14+00:00
Lebih
Sumber
Sunting
#22667188

Berdasarkan @pilau s jawaban - tetapi dengan peningkatan yang bahkan jawaban yang diterima tidak memiliki.

<div class="angular-with-newlines" ng-repeat="item in items">
   {{item.description}}
</div>

/* in the css file or in a style block */
.angular-with-newlines {
    white-space: pre-wrap;
}

Ini akan menggunakan baris dan spasi seperti yang diberikan, tetapi juga istirahat konten di isi batas. Informasi lebih lanjut tentang putih-ruang tamu dapat ditemukan di sini:

https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

Jika anda ingin istirahat pada baris, tetapi juga runtuh beberapa ruang atau ruang putih mendahului teks (sangat mirip dengan aslinya browser perilaku), yang dapat anda gunakan, seperti @aaki yang disarankan:

white-space: pre-line;

Nice perbandingan rendering yang berbeda mode: http://meyerweb.com/eric/css/tests/white-space.html

Paul Weber
Paul Weber
Jawaban edit 5 Februari 2015 в 10:17
263
0
Maxim Shoustin
Maxim Shoustin
30 Oktober 2013 в 2:15
2013-10-30T14:15:52+00:00
Lebih
Sumber
Sunting
#22667184

Coba:

<div ng-repeat="item in items">
  <pre>{{item.description}}</pre>
</div>

The <pre> wrapper akan mencetak teks dengan \n sebagai teks

juga jika anda mencetak json, untuk tampilan yang lebih baik menggunakan json filter, seperti:

<div ng-repeat="item in items">
  <pre>{{item.description|json}}</pre>
</div>

Demo

Saya setuju dengan @Paul Weber yang white-space: pre-wrap; adalah pendekatan yang lebih baik, lagian menggunakan <pre> - cara cepat sebagian besar untuk debug beberapa barang (jika anda don't ingin membuang-buang waktu pada styling)

Maxim Shoustin
Maxim Shoustin
Jawaban edit 24 Juni 2016 в 5:07
126
0
 pilau
pilau
21 Agustus 2014 в 5:12
2014-08-21T17:12:59+00:00
Lebih
Sumber
Sunting
#22667187

It's begitu sederhana dengan CSS (bekerja, aku bersumpah).

.angular-with-newlines {
  white-space: pre;
}
  • Melihat ma! Tidak ada tambahan tag-tag HTML!
 pilau
pilau
Jawaban edit 1 Maret 2018 в 1:37
62
0
 Rehan
Rehan
8 Juni 2016 в 6:38
2016-06-08T06:38:32+00:00
Lebih
Sumber
Sunting
#22667190

Dengan CSS ini dapat mencapai dengan mudah.

<div ng-repeat="item in items">
<span style="white-space:pre-wrap;"> {{item.description}}</span>
</div>  

Atau kelas CSS dapat dibuat untuk tujuan ini dan dapat digunakan dari file CSS eksternal

 Rehan
Rehan
Jawaban edit 23 Oktober 2017 в 8:42
16
0
Nicolas Brugneaux
Nicolas Brugneaux
30 Oktober 2013 в 2:19
2013-10-30T14:19:35+00:00
Lebih
Sumber
Sunting
#22667185

Nah itu tergantung, jika anda ingin untuk mengikat data-data, tidak seharusnya't menjadi format apapun di dalamnya, jika tidak, anda dapat mengikat-html dan melakukan keterangan.replace(/\\n/g, &#39;<br>&#39;) tidak yakin itu's apa yang anda inginkan sekalipun.

2
0
 Dmitry
Dmitry
26 April 2016 в 5:09
2016-04-26T17:09:49+00:00
Lebih
Sumber
Sunting
#22667189

css solusi bekerja, namun anda tidak benar-benar mendapatkan kontrol di styling. Dalam kasus saya saya ingin sedikit lebih banyak ruang setelah garis istirahat. Di sini adalah petunjuk yang saya buat untuk menangani hal ini (ketangkasan):

function preDirective(): angular.IDirective {
    return {
        restrict: 'C',
        priority: 450,
        link: (scope, el, attr, ctrl) => {
            scope.$watch(
                () => el[0].innerHTML,
                (newVal) => {
                    let lineBreakIndex = newVal.indexOf('\n');
                    if (lineBreakIndex > -1 && lineBreakIndex !== newVal.length - 1 && newVal.substr(lineBreakIndex + 1, 4) != '</p>') {
                        let newHtml = `<p>${replaceAll(el[0].innerHTML, '\n\n', '\n').split('\n').join('</p><p>')}</p>`;
                        el[0].innerHTML = newHtml;
                    }
                }
            )
        }
    };

    function replaceAll(str, find, replace) {
        return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
    }

    function escapeRegExp(str) {
        return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
    }
}

angular.module('app').directive('pre', preDirective);

Gunakan:

<div class="pre">{{item.description}}</div>

Semua hal ini adalah membungkus setiap bagian dari teks ke <p> tag. Setelah itu anda dapat gaya namun anda inginkan.

 Dmitry
Dmitry
Jawaban edit 26 April 2016 в 7:41
1
0
 NicolasMoise
NicolasMoise
30 Oktober 2013 в 2:24
2013-10-30T14:24:19+00:00
Lebih
Sumber
Sunting
#22667186

Ya, aku akan baik menggunakan <pre> tag atau menggunakan ng-mengikat-html-tidak aman http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngBindHtmlUnsafe (gunakan ng-mengikat-html jika anda menggunakan 1.2+) setelah menggunakan .mengganti() mengubah /n menjadi <br />

 NicolasMoise
NicolasMoise
Jawaban edit 30 Oktober 2013 в 2:29
0
0
Siddhartha Thota
Siddhartha Thota
14 November 2017 в 8:39
2017-11-14T20:39:44+00:00
Lebih
Sumber
Sunting
#22667191

Hanya menggunakan gaya css "white-space: pre-wrap" dan anda harus baik untuk pergi. I've punya masalah yang sama di mana saya perlu untuk menangani pesan error yang garis istirahat dan ruang putih yang benar-benar khusus. Saya hanya menambahkan inline ini di mana aku mengikat data dan bekerja seperti Pesona!

0
0
Chris Rae
Chris Rae
24 Oktober 2018 в 5:07
2018-10-24T17:07:00+00:00
Lebih
Sumber
Sunting
#22667192

Aku punya masalah yang sama dengan anda. I'm tidak tertarik pada jawaban yang lain di sini karena mereka don't benar-benar memungkinkan anda untuk gaya newline perilaku sangat mudah. I'm tidak yakin jika anda memiliki kontrol atas data asli, tapi solusi saya diadopsi untuk beralih "item" dari sebuah array dari string menjadi array dari array, dimana masing-masing item dalam array kedua berisi baris teks. Dengan cara itu anda dapat melakukan sesuatu seperti:

<div ng-repeat="item in items">
  <p ng-repeat="para in item.description">
     {{para}}
  </p>
</div>

Cara ini dapat anda terapkan kelas untuk paragraf dan gaya mereka dengan baik dengan CSS.

0
0
 Akitha_MJ
Akitha_MJ
14 Juni 2019 в 3:49
2019-06-14T15:49:51+00:00
Lebih
Sumber
Sunting
#22667193

Hanya menambahkan ini untuk gaya anda, ini bekerja untuk saya

white-space: pre-wrap

Oleh teks ini di <textarea>dapat ditampilkan sebagai it's di sana dengan spasi dan garis rem

HTML

   <p class="text-style">{{product?.description}}</p>

CSS

.text-style{
    white-space: pre-wrap
}
0
0
Related communities 1
Angular Indonesia
Angular Indonesia
3 519 pengguna
Framework web development aplikasi web dan mobile https://angular.io/ Facebook Group https://www.facebook.com/groups/462764390497214/ Github Repo Angular ID https://github.com/angular-indonesia Medium Angular Indonesia https://medium.com/angularid
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi