我在iron-router中看到的每个例子都用字符串指定模板名称。是否可以使用变量执行此操作?假设您有多条路径都使用相同的动态路径和相同的数据功能,但它们都需要不同的模板。有没有办法做到这一点,而没有为每个模板指定不同的路径(这也意味着改变我使用的路径)?
答案 0 :(得分:1)
一旦发布0.8.2,即使没有Iron-Router,UI.dynamic
{{1}}也应该是微不足道的。{/ 3}}。
答案 1 :(得分:1)
您可以使用自定义action function以编程方式指定模板和布局等内容。下面的示例演示了如果根据路径中的ID找到所需文档,则显示特定模板。您可以对路由和控制器使用相同的语义。
var postsController = RouteController.extend({
waitOn: function() {
return Meteor.subscribe('post', this.params._id);
},
action: function() {
if (Posts.findOne(this.params._id)) {
this.layout('postsLayout');
this.render('posts');
} else {
this.render('notFound');
}
}
});