【问题标题】:Meteor and iron-router: dynamically specify a template?Meteor 和 Iron-router:动态指定模板?
【发布时间】:2014-06-16 17:21:13
【问题描述】:

我看到的每个使用 iron-router 的示例都使用字符串指定模板名称。是否可以使用变量来执行此操作?假设您有几个路由都使用相同的动态路径和相同的数据函数,但它们都需要不同的模板。有没有办法在不为每个模板指定不同路径的情况下执行此操作(这也意味着更改我使用的路径)?

【问题讨论】:

  • 我认为目前的做法是为您的路由/控制器添加一个action 回调,然后使用模板名称调用this.render。试试看。如果你不能让它工作,或者这没有意义,请尝试在问题中添加一个非常简单的代码版本。
  • 是的,确实有效。这也有助于我更好地理解动作回调的用途。如果您将此作为答案发布,我会接受。谢谢。

标签: meteor iron-router


【解决方案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');
    }
  }
});

【讨论】:

    【解决方案2】:

    一旦 0.8.2 发布,即使没有 Iron-Router:https://github.com/meteor/meteor/issues/2123UI.dynamic 也应该是微不足道的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2023-03-12
      • 2014-05-07
      相关资源
      最近更新 更多