Javascript 模板作为handlebar.js中的变量

Javascript 模板作为handlebar.js中的变量,javascript,internationalization,ember.js,handlebars.js,Javascript,Internationalization,Ember.js,Handlebars.js,我正在创建一个国际化的Ember.js应用程序,我正在使用它。这在大多数情况下都很好,但是现在考虑语言字符串: 'To do some action {{link}}' 其中{{link}}需要替换为某个链接。翻译字符串不能拆分,因为{{link}}的位置可能因语言而异。因此,我需要找到一种方法来获取链接;这当然是另一个带有翻译的模板,类似于: <a {{action someAction}}>{{t click_here}}</a> 我尝试了几种方法:使用自定义块辅

我正在创建一个国际化的Ember.js应用程序,我正在使用它。这在大多数情况下都很好,但是现在考虑语言字符串:

'To do some action {{link}}'
其中{{link}}需要替换为某个链接。翻译字符串不能拆分,因为{{link}}的位置可能因语言而异。因此,我需要找到一种方法来获取链接;这当然是另一个带有翻译的模板,类似于:

<a {{action someAction}}>{{t click_here}}</a>
我尝试了几种方法:使用自定义块辅助对象为链接创建自定义视图;但我还没找到工作


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

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

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>
假设翻译字符串位于“单击此处”键中


更多信息:

您是否可以将链接放在固定位置,但有一个前文本和一个后文本,如果语言需要,其中一个文本可能为空?我目前正在开发一个具有类似场景的应用程序。我已经在单独的文件中创建了所有模板,然后手动将每个模板的把手标记复制到我正在使用.net的资源文件中的一个键上,这样我就可以为我支持的每种语言创建一个.resx文件。我相信rails使用.yml文件,对吗?。这可能不是最好的方法,因为每次更改模板时,我都必须手动将整个模板复制到资源密钥,并处理空格和所有内容。然后在运行时,我将模板源注入Ember.TEMPLATES。再说一次,可能不是最好的方式,只是扔掉它there@Jasper这可能是可能的,但是我已经想到了一些场景,在这些场景中,这是不够的。假设有多个链接,顺序甚至可能不准确。作为一种解决方法,我可能会使用它,希望我永远不会遇到这样的异常情况,但我希望有更好的方法。@MilkyWayJoe问题之一是Ember.js实际上有点劫持handlebar.js,模板的工作方式似乎略有不同。因此,例如,此场景操作所需的余烬帮助程序在语言模板中不可用;所以不幸的是,我不能只使用整个标记。我不确定我是否理解Ember.js实际上有点劫持handlebar.js,模板的工作方式似乎略有不同,但在这种情况下,我的意思是有一个嵌套的翻译;i、 e.点击此处翻译中的模板/翻译。绑定机制无法解决这一问题。