AngularJS在控制器中应用过滤器

时间:2013-05-27 14:54:54

标签: javascript angularjs filter

我的AngularJS网络应用程序和过滤器中有根控制器。如果我在html模板中应用过滤器,则过滤器可以正常工作,但如果我尝试在控制器中应用过滤器,则无法使用过滤器。

function Controller ( ... deps ...) {
    filter = $filter('my_filter');
    $scope.$apply(function(){$scope.error_message =  filter('ERROR');});
}

filter必须向error返回简单的<p>字符串,它不起作用。

如果我做:

<p>{{'....' | my_filter}}</p>

有效。为什么呢?

谢谢。

1 个答案:

答案 0 :(得分:1)

不要将$scope.error_message = filter('ERROR');包裹在$scope.$apply中 - 这会导致错误,因为在摘要周期中调用了控制器。

这应该有效:

function Controller ($filter ... other deps ...) {
  var filter = $filter('my_filter');
  $scope.error_message =  filter('ERROR');
}