Angularjs $translate.instant(';id);语言更改时不更新
我有一个使用两种语言的angular应用程序。我使用$translate.instant('id');在我的控制器中绑定一些变量。但是当我使用$translate.use('jp')更改翻译语言时;控制器变量不会改变 我在HTML中使用了“翻译”过滤器。这一个会改变,但控制器变量不会改变。有什么办法可以实施吗 使用下面的代码初始化Angularjs $translate.instant(';id);语言更改时不更新,angularjs,angular-translate,Angularjs,Angular Translate,我有一个使用两种语言的angular应用程序。我使用$translate.instant('id');在我的控制器中绑定一些变量。但是当我使用$translate.use('jp')更改翻译语言时;控制器变量不会改变 我在HTML中使用了“翻译”过滤器。这一个会改变,但控制器变量不会改变。有什么办法可以实施吗 使用下面的代码初始化 $translateProvider.useStaticFilesLoader({ prefix: '/translations/', suffix: '.j
$translateProvider.useStaticFilesLoader({
prefix: '/translations/',
suffix: '.json'
});
$translateProvider.preferredLanguage('en');
$translateProvider.fallbackLanguage('en');
$translateProvider
.useSanitizeValueStrategy('escape');
在控制器中,我使用了以下代码。
vm.userName=$translate.instant('USER_NAME')
当使用以下代码更改语言时
$translate.use('jp');
用户名不会更改。在调用
$translate.instant('USER\u NAME')时,如果语言文件未完全加载,则会发生这种情况。
也不建议在控制器上执行翻译,因为翻译只是一种表示(视图),不应在控制器逻辑中处理
如果您只是想翻译用户名
,您可以这样做(假设您已经这样做了):
{{USER_NAME | translate}}
下面的SO问题中提到了对该问题的进一步研究:
检查@PascalPrecht(angular translate的作者)@Robinbanbaalen的答案是否有示例代码,以便我们可以更仔细地查看?编辑。请现在检查。你能解决你的问题吗?