这是我的控制器,我添加了一个变量“title”,其值为“This& That”。
app.controller('Controller', ['$scope', function($scope){
$scope.title = "This & That";
}]);
我的输入绑定到“标题”,如下所示。
<input type="text" ng-model="title" />
最终输出显示如下
“这&
那个”而不只是“This&amp; That”。
但是,如果我添加这样的过滤器
<input type="text" ng-model="title | htmlentities_decode" />
我得到“This&amp; That”,但后来我再也无法编辑输入了。
过滤器就是这个
app.filter('htmlentities_decode', function(){
return function(input){
return $('<textarea />').html(input).text();
};
});
如何获取“This&amp; That”而不是“This &
That”并仍然能够编辑输入。或者更好的是,如何在没有过滤器的情况下将标题绑定到ng-model并且没有将&符号编码为&
?
提前致谢。
答案 0 :(得分:0)
您应该使用$sce
。你的代码就像
app.filter('htmlentities_decode', function($sce){
return function(input){
if(input)
return $sce.trustAsHtml(input)
};
});
答案 1 :(得分:0)
尝试ng-bind-html而不是ng-model。