Setelah membaca tutorial AngularJS langkah-9 saya telah membuat filter AngularJS saya sendiri, yang seharusnya mengubah data boolean menjadi html.
Ini kode filter saya:
angular.module('phonecatFilters', []).filter('iconify', function () { // My custom filter
return function (input) {
return input ? '<i class="icon-ok"></i>' : '<i class="icon-remove"></i>';
}
});
Ini kode HTML saya:
<dt>Infrared</dt>
<dd>{{phone.connectivity.infrared | iconify }}"></dd>
Masalahnya adalah borwser menampilkan nilai yang dikembalikan secara harfiah sebagai:
<i class="icon-ok"></i>
bukan sebagai ikon (atau html yang dirender) yang seharusnya muncul.
Berikut adalah contoh JSFiddle
Saya pikir beberapa sanitasi terjadi selama proses ini.
Apakah mungkin untuk menonaktifkan sanitasi ini untuk filter khusus ini?
Saya juga tahu cara menampilkan ikon dengan tidak mengembalikan output HTML dari filter melainkan hanya teks 'ok' atau 'hapus' yang kemudian dapat saya gantikan:
<i class="icon-{{phone.connectivity.infrared | iconify}}"><i>
tapi ini bukan yang kuinginkan.