在ember.js应用程序中,我创建了一个用于文本本地化的自定义助手。具体来说,它是通过Jed传递给助手的值,Jed是一个gettext风格的文本翻译库,如下所示:
Ember.Handlebars.helper('_', function(value, options) {
return Lang.gettext(value);
});在我的模板中:
{{_ "Translate Me"}}问题是,成员将其呈现为绑定助手,即呈现的文本值被<script id="metamorph-*">标记包围,但由于值永远不会更改,我希望它们不受约束,以避免额外的开销和标记。
在API文档中,我确实看到了这方面的解决方案:
{未绑定}助手可与绑定助手调用一起使用,以非绑定形式呈现它们。
但是,我更喜欢一种只在全局上将我的助手定义为未绑定的助手的方法,这样我就不必为每个本地化的字符串键入{{unbound _ "Foo"}}。更不用说,这样做会导致我使用的库(xgettext-模板)无法解析字符串,从而从源代码中提取所有本地化的字符串。
发布于 2014-04-07 20:31:35
快速回答,如果没有将属性绑定到函数,则可以使用registerHelper
Ember.Handlebars.registerHelper('_', function(value, options) {
return value + 'moo';
});发布于 2014-04-07 20:44:22
以防万一你可能需要这个。
从另一个车把帮手呼叫车把帮手
Ember.Handlebars.helper('_', function(value, options) {
return Lang.gettext(value);
});
Ember.Handlebars.registerHelper('i18n', function(value, options){
var args = Array.prototype.slice.call(arguments, 1);
args.unshift(value);
args.unshift('_');
return Ember.Handlebars.helpers.unbound.apply(this, args);
});像这样使用{{i18n "Translate Me"}}
这是JSBin
https://stackoverflow.com/questions/22920138
复制相似问题