AngularJs Filter /从控制器调用时不更新

时间:2015-04-08 14:56:32

标签: angularjs templates filter controller difference

我编写了一个自定义过滤器来翻译我的应用程序,它运行良好(它还可以动态更改语言,这要归功于有状态的1.3.5提示)。

我的问题是,当从模板中调用过滤器时,它可以很好地工作(包括初始化和动态变化):

<p>{{ 'HOME_TITLE_TEXT' | i18n }}</p>

但是当我从控制器调用它时它只会初始化,并且在我更改语言时不会更新

// In controller
$scope.anotherTest = $filter('i18n')('HOME_TITLE_TEXT');

// In template
<p>{{ anotherTest }}</p>

我也试过ng-bind&amp; ng-bind-html但它也没有更新。

在过滤器功能上添加警报时,我注意到在第一种情况下过滤器的触发方式更多。

控制器声明过滤器为什么不像另一个那样经常更新的任何线索?和/或我如何强制它更新? (我已经看过$ apply,没有结果)

注意:过滤器调用更新所用字典的服务(大多数在线教程都这样做)

// filter content
function filterFn(label) {
    return langService.getTrad(label);
}
filterFn.$stateful = true;
return filterFn;

0 个答案:

没有答案