关于自编HandlebarsHelper的约束力?

时间:2014-08-07 14:50:33

标签: javascript ember.js

我正在尝试将国际化功能添加到我的网站。

我编写了自己的I18n.js,它使用DS.store中的翻译对象而不是自己的(因此有一个翻译模型,Ember会在Application-start上预加载它)。

要将我的翻译到模板中,我已经编写了这个把手 - 助手

Ember.Handlebars.registerHelper('i18n', function(key) {
    return Application.I18n.t(key);
});

所以我可以轻松地使用它:

{{i18n example_key}}

到目前为止,一切都很完美。 但是屏幕上可见的翻译并不与其翻译模型绑定。

如果我在管理页面中更改了翻译,那么我必须重新加载页面。

是否可以在助手和助手必须显示的翻译模型之间添加绑定?

谢谢

2 个答案:

答案 0 :(得分:0)

使用registerBoundHelper代替registerHelper。我甚至认为registerHelper不是公共API的一部分。

答案 1 :(得分:0)

Application.I18n到底是什么样的?为了使{{i18n}}助手在更改内容时刷新其内容,需要观察可观察的内容。

如果传递具有可观察属性的对象,则

Ember.Handlebars.helper非常有用(请参阅http://emberjs.com/guides/templates/writing-helpers/#toc_dependencies)。但是,如果您只将字符串作为字符串传递,则必须以某种方式自行设置绑定。