Bagaimana untuk menangani string yang berisi HTML yang menggunakan Sudut-Translate?
Apakah ada cara untuk memberitahu sudut dan sudut-translate]1 untuk menangani string yang berisi konten HTML.
Saya memiliki add_card-title = "Untuk membuat pemesanan lebih cepat, <span class="nowrap">add a card sekarang</span>"
saya Lang string. Ketika saya menggunakannya di template saya dengan menulis <p>{{'add_card-judul' | terjemahan}}</p>
aku mendapatkan string yang seperti itu.
Output: Untuk membuat pemesanan lebih cepat, <span class="nowrap">add a card sekarang</span>
output yang diharapkan: Untuk membuat pemesanan lebih cepat, tambahkan kartu sekarang
Aku tahu aku bisa menggunakan ng-html-mengikat-tidak aman
tapi itu tidak membantu.
Tidak bekerja:
<p ng-html-bind-unsafe="{{'add_card-title' | translate}}"></p>
Apakah ada cara untuk mencapai hal itu?
Di sini saya plunker: http://plnkr.co/edit/nTmMFm9B94BmbTgo2h8H?p=preview
Untuk referensi anda bisa melihat masalah ini: https://github.com/PascalPrecht/angular-translate/issues/173
catatan: saya tidak ingin invlove controller untuk menangani hal itu.
Anda dapat melakukan ini keluar dari kotak dengan sudut-translate 2.0 hari ini.
bekerja keajaiban bagi saya.
Anda harus menggunakan ng-mengikat-html direktif tanpa kurung kurawal ({{ }})
Untuk mengetahui konfigurasi yang diperlukan dalam rangka untuk menggunakan direktif (ngBindHtml), ikuti link ini: https://docs.angularjs.org/api/ng/directive/ngBindHtml
Setelah ngSanitize disertakan, berikut kode yang harus bekerja:
Ini bekerja untuk saya... HTML ditafsirkan untuk styling yang baik (misalnya: tebal, miring, dll.)
Namun, saya juga dibutuhkan untuk memastikan bahwa aku tidak't melarikan diri menggunakan strategi dalam penyedia setup. Itu membuatku kacau untuk sementara waktu.
$translateProvider.useSanitizeValueStrategy( 'membersihkan' );
$translateProvider.useSanitizeValueStrategy( 'melarikan diri' );
https://angular-translate.github.io/docs/#/guide/19_security
Menggunakan: sudut-translate v2.13.1
Anda dapat menggunakan
<p [innerHTML]=",'add_card-judul' | translate"></p>
Saya telah menemukan solusi. Saya menggunakan
AngularJS v1.2.0-rc.3
yang punyang-html-mengikat-tidak aman
usang. Sekarang sudut memiliking-mengikat-html
bukanng-html-mengikat-tidak aman
. Tapi satu harus inject sudut-membersihkan sebagai ketergantungan untuk membuatnya bekerja.Saya diganti
dengan
dan hal-hal mulai bekerja.
Berikut ini adalah beberapa cara untuk mencampur html (bersama dengan lingkup variabel, bersama dengan interpretion jika anda perlu hal-hal seperti ng-klik di html terjemahan):
http://plnkr.co/edit/OnR9oA?p=preview
Secara default AngularJS melarikan diri dan kode ini akan menampilkan untuk alasan keamanan, anda perlu untuk memberitahu sudut dari string anda don't ingin melarikan diri, di masa tua sebelum AngularJS 1.2 pengembang bisa melakukan itu dengan menggunakan
ng-mengikat-html-tidak aman
tapi di AngularJS 1.2 yang telah usang.Untuk menggunakan html tag dalam string, di AngularJS 1.2+, anda perlu untuk men-download
sudut-membersihkan
modul dan memasukkannya ke dalam aplikasi anda ketergantungan.Setiap string yang berisi kode html yang anda dapat menampilkannya dengan menggunakan
ng-mengikat-html
secara Otomatis menggunakan $membersihkan, dalam hal ini akanng-mengikat-html=",'add_card-judul' | translate"
Untuk referensi:
Menengah
AngularJS Dokumentasi
Aku mencoba kedua jawaban anda dan tidak satupun dari mereka bekerja pada 1.0.7 jadi untuk semua orang yang's bekerja pra 1.2 anda dapat melakukannya seperti ini