【发布时间】:2017-09-18 13:17:35
【问题描述】:
我正在尝试使用在 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 上下文中的函数或变量,因为如果我将函数移动到$scope 然后用@ 调用它987654329@ 工作正常。
有没有办法使用服务中的功能? 我已将该功能放入服务中,因为我想在多个控制器之间共享此功能。
AngularJS 版本是:1.6.5。
【问题讨论】:
-
我建议使用基于
filter的解决方案,它非常优雅:stackoverflow.com/a/19705096/1225328。 -
@sp00m 如果我需要将 2 个参数而不是 1 个参数传递给函数怎么办?假设文本和另一个参数,我还可以使用过滤器吗?
-
我不确定我是否理解。您介意提供您的实际代码吗?
标签: javascript angularjs angular-services ng-bind-html