使用角度翻译时的建议是prefer the directive over the filter。现在在某些地方我需要动态构建翻译键,例如
<span translate>{{'Prefix' + vm.foo}}</span>
这适用于Chrome和Firefox,但会产生一个无效的参数&#34;在IE的角度源深处的某个地方。这是一个这样的错误的堆栈跟踪:
Error: Invalid argument.
at interpolateFnWatchAction (http://localhost:53559/bower_components/angular/angular.js:8020:17)
at interpolateFnWatcher (http://localhost:53559/bower_components/angular/angular.js:10177:17)
at watchGroupAction (http://localhost:53559/bower_components/angular/angular.js:13915:13)
at Scope.prototype.$digest (http://localhost:53559/bower_components/angular/angular.js:14243:23)
at Scope.prototype.$apply (http://localhost:53559/bower_components/angular/angular.js:14506:13)
at done (http://localhost:53559/bower_components/angular/angular.js:9659:36)
at completeRequest (http://localhost:53559/bower_components/angular/angular.js:9849:7)
at requestLoaded (http://localhost:53559/bower_components/angular/angular.js:9790:9) undefined
有趣的是,误差来自角度本身,而不是角度平移。
当然,解决方法是使用
<span>{{'Prefix' + vm.foo | translate}}</span>
但我的问题是:这是一个错误,还是预期的行为?如果是这样,为什么它是特定于浏览器的?
修改
我们使用angular v1.3.14和angular-translate v2.6.1。
答案 0 :(得分:0)
@Yosh在评论中指出,此问题是一个已知错误,请参阅https://github.com/angular-translate/angular-translate/issues/925。
解决方法是使用translate过滤器而不是指令。