我有一个评论文本框,我只想让[href]作为带有ngSanitize / $ sce的安全html。 所以我正在尝试这个:
<span contact-highlight hightlight-value="showedText" ng-bind-html="showedText"></span>
在我的contactHiglight指令中,我有这个:
contentObjectApp.directive('contactHighlight', function ($sce) {
return {
restrict: 'A',
scope: { hightlightValue: '=' },
link: function ($scope, $element, $attrs) {
$scope.hightlightValue = "<h2> testing" + $sce.trustAsHtml('<a href="#">render me please</a>') + " </h2>";
}
};
});
我希望只允许'渲染我'成为一个href链接,但我总是希望能够渲染。我错过了什么?有一个简单的方法吗?
答案 0 :(得分:2)
根据Angular 1.3.7(https://docs.angularjs.org/api/ng/service/ $ sce)的文档,如果你想传递链接,请使用$ sce.trustAs($ sce.URL,value_to_parse)。
我建议你使用过滤器:
angular.module('App', [])
.filter('asHtml', function($sce) {
return function(input) {
return $sce.trustAs($sce.URL, input);
};
})
然后在您的视图中,您可以将其用作:
<span ng-bind-html="value_to_parse | asHtml"> </span>