解决方法
从Angular 1.3过滤器是无状态的,这意味着过滤器只会在他们的输入发生变化时更新.
如果您想要更新过滤器,则需要制作过滤器$stateful.
app.filter('translate',translate); translate.$inject = ['$rootScope']; function translate($rootScope){ filter.$stateful = true; return filter; function filter(str) { return i18n[$rootScope.currentLang][str]; }; }
过滤器将在每个$digest上执行,但这是perfm不建议的.