我使用angular translate代表i18n。
我正在处理的特定功能是更新图书的状态。在服务回调中,如果成功,我会将我的图书状态从Open
更新为Closed
。如果我查看范围(使用Batarang),我可以看到我的DOM元素:
<span translate="Closed" class="ng-scope">Open</span>
正如您所看到的,翻译价值正在更新,但翻译本身并不是自己发生的。我已经阅读了文档,并了解这是预期的行为。但是,我想知道的是应该我是如何刷新翻译的价值的?
目前,每次更新需要重新翻译的范围值时,我都会注入$translate
服务并执行$translate.refresh()
。我觉得这很笨重,可能不是我应该这样做的方式。
有什么想法吗?
答案 0 :(得分:0)
为翻译创建一个公共服务,这将配置我们的翻译代码,特别是它将配置我们的翻译文件的位置。创建一个目录src / common / translation,以及一个文件src / common / translation / translation.js: http://technpol.wordpress.com/2013/11/02/adding-translation-using-angular-translate-to-an-angularjs-app/
angular.module('angularTranslateApp', ['pascalprecht.translate'])
.config(function($translateProvider, $translatePartialLoaderProvider) {
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: '/UI/assets/translation/{lang}/{part}.json'
}
});
$translateProvider.preferredLanguage('en-AU'); });
答案 1 :(得分:0)
你绝对不应该为此发布刷新。
做这样的事情:
<span> {book.state | translate} </span>
鉴于您的图书模型具有反映其状态的成员国。 每当模型改变时,状态值将被重新翻译。