Dopo aver letto AngularJS tutorial step-9 Ho creato il mio filtro AngularJS, che dovrebbe convertire i dati booleani in html.Come creare il filtro angularjs che restituisce HTML
Ecco il mio codice di filtro:
angular.module('phonecatFilters', []).filter('iconify', function() { // My custom filter
return function (input) {
return input ? '<i class="icon-ok"></i>' : '<i class="icon-remove"></i>';
}
});
Ecco il mio codice HTML:
<dt>Infrared</dt>
<dd>{{phone.connectivity.infrared | iconify }}"></dd>
Il problema è che visualizza borwser restituito il valore letterale:
<i class="icon-ok"></i>
non come icone (o renderizzate html) che dovrebbero apparire.
Penso che alcuni sanificazione si verifica durante questo processo.
È possibile disattivare questa sanificazione per questo filtro specifico?
Anche io so come visualizzare le icone non restituendo output HTML dal filtro, ma il testo piuttosto solo 'ok' o 'remove' che io possa poi sostituire a:
<i class="icon-{{phone.connectivity.infrared | iconify}}"><i>
, ma questo non è quello che voglio .
grazie per la risposta, ma la tua soluzione è quasi uguale alla mia con l'icona '' e nel mio caso non uso tag SPAN extra. –
Beh, è l'unico modo che conosco per generare HTML grezzo con angularJS e questa associazione è consentita solo sugli attributi in modo da non avere molta scelta, puoi scrivere la tua direttiva che accetta i collegamenti di commenti o elementi, prendi il codice sorgente di bind -html per un punto di partenza: https://github.com/angular/angular.js/blob/master/src/ngSanitize/directive/ngBindHtml.js – Guillaume86
Una direttiva forse la soluzione più bella qui ma non è molto più breve della soluzione;) –
Guillaume86