我正在尝试使用在 AngularJS 服务中定义的名为 highlightReview
的转换函数,该函数具有属性 ng-bind-html
但我无法使其工作。
请参阅下面的示例:
function myReputationSrvc($http, $q, $log, $sce) {
this.highlightReview = function(text) {
return $sce.trustAsHtml(text);
}
}
然后在 HTML 中调用该函数,如下所示:
<span ng-bind-html = " MyReputationSrvc.highlightReview(review.positiveText) "> </span>
没有调用任何内容,也没有抛出任何错误,看起来 ng-bind-html
仅适用于 $scope
上下文中的函数或变量,因为 if我将该函数移至 $scope
,然后使用 ng-bind-html = "highlightReview(review.positiveText)"
调用它,工作正常。
有办法使用服务中的功能吗? 我已将该函数放入服务中,因为我想在多个 Controller 之间共享此函数。
AngularJS 版本是:1.6.5。
最佳答案
您需要将服务注入(inject)到 Controller 中,并将函数放置在 Controller 内,不能直接从模板调用服务函数。
或者您可以使用自己的过滤器来完成这项工作,
.filter('mysce',function($http, $q, $log, $sce){
return $sce.trustAsHtml(text);
});
<span ng-bind-html = "review.positiveText | mysce"> </span>
关于javascript - 在 AngularJS 中使用 ng-bind-html 的服务功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46280306/