我在ember-cli-i18n
应用中使用ember-cli
..
我有属性menuItems
返回..
[{
text: 'leftnav_nonfollower',
route: 'nonFollowers'
}, {
text: 'leftnav_nonfans',
route: 'fans'
}]
在模板中,我使用menuItems
作为..
{{#each menuItem in navItems}}
<li {{action 'changeRoute' menuItem }} >
<a href="#" class='nav-circle'>
{{t menuItem.text}}
</a>
</li>
{{/each}}
现在,而不是寻找leftnav_nonfollower
的翻译..库实用程序t()
实际上是在寻找字符串menuItem.text
的翻译..因此给出了错误Assertion Failed: Missing translation for key "menuItem.text".
答案 0 :(得分:1)
t
会自动注入控制器,组件,路由和模型。
来源:https://github.com/dockyard/ember-cli-i18n#utility
所以,不要在你的模板中这样做,为什么不在形成数组时这样做。像这样:
var menu = [{
text: 'leftnav_nonfollower',
route: 'nonFollowers'
}, {
text: 'leftnav_nonfans',
route: 'fans'
}]
menu = menu.map(function(item) {
item.text = this.t(item.text);
return item;
});
这将为您提供可在模板中直接使用的密钥中的翻译文本。