我想使用AngularJS过滤器获取HTML字符串的文本,但似乎无法使用我的代码。
我的代码:
app.filter('unsafe', function($sce) {
return $sce.trustAsHtml;
});
app.filter('short', function() {
return function(short, length) {
return short.substr(0, length || 20)+'...';
}
});
我的模板:
<p ng-bind-html="event.description | unsafe | short"></p>
编辑#1:
Error: [$injector:unpr] Unknown provider: unsafeFilterProvider <- unsafeFilter
答案 0 :(得分:4)
简单地说,这就是你的问题:
$sce.trustAsHtml
不会返回字符串,因此,返回的对象不具有substr
原型函数&& #39;重新尝试在short
过滤器中使用 <{strong> unsafe
。
以下是 AngularJS documentation for $sce.trustAs
的引用:
[...]返回一个受angular信任的对象,以便在使用提供的值的指定严格上下文转义上下文[...]中使用。
做到这一点:
<!-- "short" filter before "unsafe" -->
<p ng-bind-html="event.description | short | unsafe"></p>
...而不是:
<p ng-bind-html="event.description | unsafe | short"></p>
......你很高兴去!
这是一个有效的JSFiddle用于说明。
答案 1 :(得分:-1)
AngularJS过滤器有两个参数,即输入和$ scope
app.filter('customFilter', function () {
return function (input, scope) {
var manipulatedInput = (input * 2) / 5;
return manipulatedInput;
};
});
&#13;
你可以像这个片段一样得到它们。希望它有所帮助!