我正在尝试添加国际化能力到我的网站。
我已经编写了我自己的I18n.js,它使用DS.store之外的转换对象,而不是它自己的(所以有一个转换模型,Ember在应用程序启动时预加载它)。
为了将我的翻译转换成模板,我编写了这个handlebars helper
Ember.Handlebars.registerHelper('i18n', function(key) {
return Application.I18n.t(key);
});因此,我可以像这样轻松地使用它:
{{i18n example_key}}到目前为止,一切都很完美。但屏幕上可见的翻译并不绑定到它的翻译模型。
如果我更改了管理页面中的翻译,我必须重新加载页面。
是否可以在帮助器和帮助器必须显示的转换模型之间添加绑定?
谢谢
发布于 2014-08-07 22:58:07
使用registerBoundHelper而不是registerHelper。我甚至不认为registerHelper是公共API的一部分。
发布于 2014-08-08 15:22:16
Application.I18n到底是什么样子的?为了使{{i18n}}帮助器在发生变化时刷新其内容,它需要观察可观察到的内容。
如果您传递具有可观察属性的对象(请参见http://emberjs.com/guides/templates/writing-helpers/#toc_dependencies),则Ember.Handlebars.helper非常有用。但是,如果只将键作为字符串传递,则必须以某种方式自行设置绑定。
https://stackoverflow.com/questions/25185596
复制相似问题