我想使用铁路由器加载流星模板,但我加载的模板需要动态,我尝试了几种不同的方法,但没有一种方法正常工作。
我的路由器
Router.route('/forms/add-form/:template', {
name: 'addForm',
layoutTemplate: 'layoutApp',
waitOn: function() {
return Meteor.subscribe('producersList');
},
data: function() {
return Producers.find();
}
});
路由器
Router.go('addForm', {template: this.template});
网址很好,现在我第一次尝试在我的路由器中使用
name: this.params.template,
但这不起作用我现在正在我的addForm模板中尝试以下内容
{{> UI.dynamic template=formToLoad data=myDataContext}}
formToLoad:function(){
console.log('aaaa ' + this.template);
}
});
答案 0 :(得分:2)
您可以在路线中将数据传递到模板中:
Router.route('/forms/add-form/:template', {
name: 'addForm',
layoutTemplate: 'layoutApp',
waitOn: function() {
return Meteor.subscribe('producersList');
},
data: function() {
return {
producers: Producers.find(),
formToLoad: this.params.template //here pass the template name
}
}
});
并在您的模板中:
<template name="addForm">
{{> Template.dynamic template=formToLoad}}
</template>
现在,如果我们运行:
Router.go('addForm', {template: 'someTemplateName'});
它应该加载名称为“someTemplateName&#39;”的模板。对模板名称使用camelCase语法,因为你会得到语法错误&some; template-name&#39;何时为模板定义帮助器或事件。