Suc*_*oir 18 javascript angularjs
我有一个小的角度过滤器,插入(引导)图标代替真值.它工作但html编码:
var conApp = angular.module('conApp', []);
conApp.filter('trueIcon', function($filter){
return function(booleanValue){
return booleanValue ? '<i class="icon-ok"></i>' : '';
}
});
Run Code Online (Sandbox Code Playgroud)
我是否必须实现另一个过滤器来解码html?有这种"有角度"的方式吗?
Ben*_*esh 28
您需要使用ng-bind-html来呈现html.
<span ng-bind-html="foo | trueIcon"></span>
Run Code Online (Sandbox Code Playgroud)
那说......那真的不是过滤器的用途.过滤器更多用于清除写入视图的数据,而不是生成视图/ DOM本身的元素.你最好为此创建一个指令:
app.directive('trueIcon', function() {
return {
restrict: 'E',
template: '<i ng-class="{\'icon-ok\': value, \'icon-not-okay\': !value}"></i>',
scope: {
value: '='
}
};
});
<true-icon value="foo"></true-icon>
Run Code Online (Sandbox Code Playgroud)
AngularJS默认清理表达式评估的结果.要将HTML显示为标记,您有两个选项:
虽然以上将使您的过滤器工作,也许你应该考虑把它变成一个指令?
| 归档时间: |
|
| 查看次数: |
9781 次 |
| 最近记录: |