【问题标题】:Iron Router: How do I send data to the layout?Iron Router:如何将数据发送到布局?
【发布时间】:2015-06-27 12:15:40
【问题描述】:

使用 Iron Router,我了解如何为模板设置数据。但是如何将数据发送到全局定义的布局?

我通过以下方式设置路由器布局:

Router.configure({ layoutTemplate: 'NAME' })

这将为我的所有路线设置布局。

但是,从我的个人路线,我想将数据发送到布局模板。

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    布局使用路由选项中data 定义的数据上下文。以下是 Iron Router documentation 的摘录:

    Router.route('/routeName', {
      ...
    
      // A data function that can be used to automatically set the data context for
      // our layout. This function can also be used by hooks and plugins. For
      // example, the "dataNotFound" plugin calls this function to see if it
      // returns a null value, and if so, renders the not found template.
      data: function () {
        return Posts.findOne({_id: this.params._id});
      },
    
      ...
    }
    

    我们也可以像这样用this.layout设置布局的数据上下文:

    Router.route('/routeName', function () {
      this.layout('layoutName', {
        data: function() {
          return CollectionName.find();
        }
      });
    });
    

    此外,我们可以像这样引用现有的layoutTemplate 选项:

    Router.route('/routeName', function () {
      this.layout(this.lookupOption('layoutTemplate'), {
        data: function() {
          return CollectionName.find();
        }
      });
    });
    

    【讨论】:

      【解决方案2】:
      Router.configure({
          layoutTemplate: 'NAME',
          data: function() {
              return CollectionName.find();
          }
      });
      

      如 Iron:router 文档中的 Global Default Options 所述:

      您可以在路由器本身上设置上述任何选项...

      “以上选项”指的是Route Specific Options中的任何一个

      您也可以subscribe 到已发布的收藏:

      Router.configure({
          layoutTemplate: 'NAME',
          subscriptions: function() {
              this.subscribe('CollectionName');
          }
      });
      

      【讨论】:

      • 您还可以使用 waitOn 添加特定于路由的订阅
      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多