2015-02-09 53 views
2

使用铁路路由器,我明白如何为模板设置数据。但是,如何将数据发送到全局定义的布局?铁路路由器:如何将数据发送到布局?

我通过设置路由器布局:

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

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

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

回答

3

布局使用在路由选项中使用data定义的数据上下文。下面是从铁路由器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(); 
    } 
    }); 
}); 
1
Router.configure({ 
    layoutTemplate: 'NAME', 
    data: function() { 
     return CollectionName.find(); 
    } 
}); 

正如铁在Global Default Options描述:路由器文档:

您可以设置任何对路由器本身上面的选项...

在哪里上述选项'指Route Specific Options

您还可以将subscribe转换为已发布的收藏:

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

你也可以用waitOn添加特定于路由的订阅 – 2015-02-09 16:59:13

相关问题