javascript - 在 AngularJS 中使用 ng-bind-html 的服务功能

标签 javascript angularjs angular-services ng-bind-html

我正在尝试使用在 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/

相关文章:

javascript - 一个组件的选定值应使用 native react 填充到另一个组件中

javascript - 如何在 Angular 2 的同一服务中将一些硬编码数据与 API 一起使用?

javascript - 从下拉列表中选择数据时从 MYSQL 数据库设置输入字段值属性

javascript - 重叠 SVG 元素的鼠标处理未按预期工作

javascript - 从 Google 表格填充 HTML 表单

javascript - Node.js 如何从 Angular $http 调用 fs.close

javascript - 检查新用户

javascript - 能够访问服务返回的对象,但访问其属性给出未定义

angular - Angular 5 中服务的生命周期是什么

javascript - sessionStorage 数据不会在带有 ngStorage 的 AngularJS 应用程序中持续存在