【发布时间】:2015-09-02 10:20:39
【问题描述】:
我有一个用 ember 1.0 之前编写的 ember 应用程序。我想在 ember 2.0 中重新编写应用程序。
在旧代码库中,我有一个 LanguageController,它对所有语言字符串都有英文定义,并且我有一个 ajax 调用来用另一种语言的字符串填充语言控制器。然后,我将该控制器用作所有模板中可用的全局变量。 ember 2.0 模板可能如下所示:
<label id="lblHomeNextAppointment">{{EEA.lang.home_next_appointment}}</label>
<div class="appointment">
{{model.nextAppointment.formattedDate}}
{{model.nextAppointment.title}}
</div>
我想把动态语言字符串放在上面写着EEA.lang.home_next_appointment的地方。
如何构造控制器等来实现这一点?也许使用服务?控制器和服务之间的根本区别是什么?
旧的(1.0 之前的)控制器如下所示:
EEA.LanguageController = Ember.ArrayController.extend({
// Default values for language strings
"header_progress": 'Progress',
"header_planned": 'Planned',
"home_next_appointment": "Next Appointment",
...
init: function() {
this._super();
EEA.lang = this; // Shorter to write EEA.lang, than EEA.router.languageController
},
...
【问题讨论】:
-
如果您想继续使用现代版本的 ember,请考虑使用 ember-cli 和插件。有一个很好的翻译github.com/jamesarosen/ember-i18n
标签: ember.js