Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memberikan Serpihan HTML dengan Selamat dalam Pandangan AngularJS?

Bagaimana untuk Memberikan Serpihan HTML dengan Selamat dalam Pandangan AngularJS?

Linda Hamilton
Lepaskan: 2024-12-20 14:31:17
asal
547 orang telah melayarinya

How to Safely Render HTML Fragments in AngularJS Views?

Memasukkan Serpihan HTML ke dalam Paparan daripada Pengawal AngularJS

Dalam AngularJS, adalah mungkin untuk mencipta serpihan HTML dalam pengawal dan menjadikannya dipaparkan dalam paparan. Ini boleh berguna untuk menjana senarai secara dinamik atau elemen UI kompleks lain.

Untuk mencapai ini, mula-mula buat sifat model untuk memegang serpihan HTML. Dalam contoh di bawah, kami mencipta sifat "customHtml":

var SomeController = function () {
    this.customHtml = '<ul><li>render me please</li></ul>';
}
Salin selepas log masuk

Seterusnya, gunakan arahan ng-bind-html dalam paparan untuk mengikat sifat customHtml kepada elemen:

<div ng-bind-html="customHtml"></div>
Salin selepas log masuk

Walau bagaimanapun, AngularJS akan menjadikan HTML sebagai rentetan dalam petikan, kerana ia menganggapnya sebagai tidak selamat untuk tujuan sanitasi. Untuk menyelesaikan masalah ini, anda boleh sama ada menggunakan perkhidmatan $sce atau sertakan modul ngSanitize.

Menggunakan $sce

Mula-mula, masukkan perkhidmatan $sce ke dalam pengawal:

app.controller('SomeController', function($sce) {
    // ...
});
Salin selepas log masuk

Kemudian, gunakan kaedah $sce.trustAsHtml() untuk menukar rentetan HTML kepada format selamat:

this.customHtml = $sce.trustAsHtml(someHtmlVar);
Salin selepas log masuk

Menggunakan ngSanitize

Untuk menggunakan ngSanitize, masukkan dahulu skrip angular-sanitize.min.js:

<script src="lib/angular/angular-sanitize.min.js"></script>
Salin selepas log masuk

Kemudian, masukkan ngSanitize sebagai kebergantungan dalam AngularJS anda modul:

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

Dengan ngSanitize, anda boleh memperuntukkan terus rentetan HTML kepada sifat model:

this.customHtml = someHtmlVar;
Salin selepas log masuk

Kedua-dua kaedah membolehkan anda menjana dan menghasilkan serpihan HTML secara dinamik dalam paparan, memberikan fleksibiliti yang lebih besar dalam aplikasi AngularJS anda.

Atas ialah kandungan terperinci Bagaimana untuk Memberikan Serpihan HTML dengan Selamat dalam Pandangan AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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