我在我的项目中使用IronRouter,其中包含不同语言的内容。要显示消息代码,我使用了UI.registerHelper,如下所示:
UI.registerHelper('loadMessageCode', function(message) {
//Logic in here to load string inside a template
return 'sample-string-in-a-language';
});
我的内容是从json文件加载的,字符串是用不同语言指定的,如下所示。应用程序启动时会将其添加到Mongo.Collection中。
{
"name": "Pages",
"items": [
{
"title": {
"en": "About Us",
"de": "Über"
},
"slug": {
"en": "about",
"de": "über"
},
"content": {
"en": "......"
"de": "......"
}
}
]
}
从我的模板中为我的内容生成链接时,我正在使用IronRouters pathFor函数,我之前用它来生成链接。其工作原理如下:
<a href="{{pathFor 'content' _page_slug=this.slug}}" title="{{title}}">
{{title}}
</a>
在我重构Json文件的结构之前,这很好用。现在我想要做的是以下几点:
<a href="{{pathFor 'content' _page_slug=<Use my helper function to dig out the slug>}}" title="{{title}}">
{{title}}
</a>
我的问题是,这可以做到,如果是这样,怎么做?
答案 0 :(得分:0)
流星指示0.9.x。
在模板中创建其他帮助:
JS
Template.template_name.helpers({
translated_slug: function () {
// get context data
var data = Template.currentData();
// retrieve slug
var slug = data.slug || "default slug";
// reuse global helper
return UI._globalHelpers.loadMessage(slug)
}
});
HTML
<a href="{{pathFor 'content' _page_slug=translated_slug}}" title="{{title}}">
{{title}}
</a>