Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menyuntik Fragmen HTML Dinamik dengan Selamat ke dalam Pandangan AngularJS daripada Pengawal Saya?

Bagaimanakah Saya Boleh Menyuntik Fragmen HTML Dinamik dengan Selamat ke dalam Pandangan AngularJS daripada Pengawal Saya?

Mary-Kate Olsen
Lepaskan: 2024-12-22 21:05:16
asal
317 orang telah melayarinya

How Can I Safely Inject Dynamic HTML Fragments into AngularJS Views from My Controller?

Menyuntik Fragmen HTML ke dalam Paparan daripada Pengawal AngularJS

AngularJS menyediakan pelbagai cara untuk mengubah paparan secara dinamik berdasarkan logik pengawal. Dalam senario tertentu, keperluan timbul untuk menjana serpihan HTML secara dinamik dalam pengawal dan memaparkannya dalam paparan. Untuk mencapai matlamat ini, adalah perlu untuk mempertimbangkan cara AngularJS mentafsir kandungan yang disuntik.

Memahami AngularJS HTML Rendering

Apabila menetapkan sifat model kepada serpihan HTML, AngularJS secara automatik terlepas entiti HTML atas sebab keselamatan. Walau bagaimanapun, jika niatnya adalah untuk memaparkan HTML sebagai kandungan sebenar, pelarian ini memberikan cabaran. HTML yang terhasil dipaparkan sebagai rentetan dalam petikan, menghalang pelaksanaannya.

Penyelesaian untuk Memaparkan Serpihan HTML Dinamik

Untuk mengatasi had ini, AngularJS menyediakan penyelesaian berikut:

ng:bind-html (Angular 1.x)

Gunakan arahan ng:bind-html dalam HTML untuk memaparkan kandungan HTML yang diingini. Walau bagaimanapun, pendekatan ini menimbulkan potensi kelemahan keselamatan dan memerlukan penggunaan $sce atau ngSanitize.

$sce

Gunakan $sce.trustAsHtml() dalam pengawal untuk menandakan rentetan HTML sebagai selamat untuk rendering. Kaedah ini membolehkan kandungan disuntik ke dalam paparan tanpa melarikan diri:

$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml(someHtmlVar);
Salin selepas log masuk

ngSanitize

Masukkan sumber angular-sanitize.min.js ke dalam HTML. Selain itu, sertakan ngSanitize dalam modul AngularJS dalam fail JavaScript:

angular.module('myApp', ['myApp.filters', 'myApp.services', 
    'myApp.directives', 'ngSanitize'])
Salin selepas log masuk

Dengan menggunakan teknik ini, anda boleh memasukkan serpihan HTML yang dihasilkan secara dinamik dengan berkesan ke dalam paparan AngularJS daripada pengawal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyuntik Fragmen HTML Dinamik dengan Selamat ke dalam Pandangan AngularJS daripada Pengawal Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan