模板作为Handlebars.js中的变量

时间:2012-11-01 14:32:54

标签: javascript internationalization ember.js handlebars.js

我正在创建一个国际化的Ember.js应用,我正在使用Ember-I18n。这在大多数情况下都可以正常工作,但现在考虑语言字符串:

'To do some action {{link}}'

{{link}}需要用某个链接替换。翻译字符串无法分解,因为{{link}}的位置可能因语言而异。所以我需要找到一种方法来获取链接;这当然是另一个带翻译的模板,如:

<a {{action someAction}}>{{t click_here}}</a>

我已经尝试了几件事情:使用自定义块帮助器为链接创建自定义视图;但我还没有任何工作要做。

这样做的最佳方法是什么?换句话说,如何将渲染模板作为变量插入到Ember.js中的另一个模板中?

1 个答案:

答案 0 :(得分:0)

我不使用该库来翻译我的应用程序,但据我从其文档中了解,这可能有用:

1)为模板创建一个视图,如下所示:

var view = Em.View.create({
  templateName: "mytemplate",
  link: "http://emberjs.com",
});

2)在模板中使用Ember-I18n提供的绑定:

<a {{action someAction}}>{{t click_here linkBinding="view.link"}}</a>

假设翻译字符串位于“click_here”键中。

更多信息:https://github.com/jamesarosen/ember-i18n#bind-interpolated-values