基于动态名称的 Meteor Iron Router 加载模板
Meteor Iron Router load template based on dynamic name
我想使用 iron-router 加载一个 meteor 模板,但我加载的模板需要是动态的,我尝试了几种不同的方法,但都没有用。
我的路由器
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});
现在 url 很好 我第一次尝试在我的路由器中安装它
name: this.params.template,
但这不起作用我现在正在我的 addForm 模板中尝试以下操作
{{> UI.dynamic template=formToLoad data=myDataContext}}
formToLoad:function(){
console.log('aaaa ' + this.template);
}
});
您可以在路由中将数据传递到模板中:
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' 的模板。对模板名称使用驼峰式语法,因为当您为模板定义助手或事件时,您会遇到 'some-template-name' 的语法错误。
我想使用 iron-router 加载一个 meteor 模板,但我加载的模板需要是动态的,我尝试了几种不同的方法,但都没有用。
我的路由器
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});
现在 url 很好 我第一次尝试在我的路由器中安装它
name: this.params.template,
但这不起作用我现在正在我的 addForm 模板中尝试以下操作
{{> UI.dynamic template=formToLoad data=myDataContext}}
formToLoad:function(){
console.log('aaaa ' + this.template);
}
});
您可以在路由中将数据传递到模板中:
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' 的模板。对模板名称使用驼峰式语法,因为当您为模板定义助手或事件时,您会遇到 'some-template-name' 的语法错误。