0

我的AngularJSWeb 应用程序和过滤器中有根控制器。如果我在html模板中应用过滤器,它会起作用,但如果我试图在控制器中应用过滤器,它就不起作用。

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

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

如果我做:

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

有用。为什么?

谢谢你。

4

1 回答 1

1

不要换$scope.error_message = filter('ERROR');$scope.$apply——这将导致错误,因为控制器是在摘要循环中调用的。

这应该有效:

function Controller ($filter ... other deps ...) {
  var filter = $filter('my_filter');
  $scope.error_message =  filter('ERROR');
}
于 2013-05-27T15:07:39.263 回答