Después de leer el paso 9 del tutorial de AngularJS , he creado mi propio filtro AngularJS, que debería convertir datos booleanos en html.
Aquí está mi código de 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>';
}
});
Aquí está mi código HTML:
<dt>Infrared</dt>
<dd>{{phone.connectivity.infrared | iconify }}"></dd>
El problema es que borwser muestra el valor devuelto literalmente como:
<i class="icon-ok"></i>
no como iconos (o html renderizado) que deberían aparecer.
Aquí está el ejemplo de JSFiddle
Creo que se produce algo de desinfección durante este proceso.
¿Es posible desactivar esta desinfección para este filtro específico?
También sé cómo mostrar iconos al no devolver la salida HTML del filtro, sino simplemente 'aceptar' o 'eliminar' el texto que luego puedo sustituir por:
<i class="icon-{{phone.connectivity.infrared | iconify}}"><i>
pero esto no es lo que quiero.
angular-sanitize.js
archivo para que esto funcione. Si desea hacer lo mismo sin incluir esta biblioteca adicional, puede usar lang-bind-html-unsafe
directiva.ng-html-bind-unsafe
requiere que el contenido html se marque explícitamente como 'seguro'; consulte: docs.angularjs.org/api/ng.$sce#Example{{myContent | myFilter | html_safe}}