我的AngularJS
网络应用程序和过滤器中有根控制器。如果我在html
模板中应用过滤器,则过滤器可以正常工作,但如果我尝试在控制器中应用过滤器,则无法使用过滤器。
function Controller ( ... deps ...) {
filter = $filter('my_filter');
$scope.$apply(function(){$scope.error_message = filter('ERROR');});
}
filter
必须向error
返回简单的<p>
字符串,它不起作用。
如果我做:
<p>{{'....' | my_filter}}</p>
有效。为什么呢?
谢谢。
答案 0 :(得分:1)
不要将$scope.error_message = filter('ERROR');
包裹在$scope.$apply
中 - 这会导致错误,因为在摘要周期中调用了控制器。
这应该有效:
function Controller ($filter ... other deps ...) {
var filter = $filter('my_filter');
$scope.error_message = filter('ERROR');
}