Iron Router:如何将数据发送到布局?
Iron Router: How do I send data to the layout?
使用Iron Router,我了解了如何为模板设置数据。但是如何将数据发送到全局定义的布局?
我通过以下方式设置路由器布局:
Router.configure({ layoutTemplate: 'NAME' })
这将为我的所有路线设置布局。
但是,我想从我的个人路线向布局模板发送数据。
Router.configure({
layoutTemplate: 'NAME',
data: function() {
return CollectionName.find();
}
});
如 iron:router 文档中的 Global Default Options 所述:
You can set any of the above options on the Router itself...
其中 'above options' 是指任何 Route Specific Options
您还可以subscribe
发布Collection:
Router.configure({
layoutTemplate: 'NAME',
subscriptions: function() {
this.subscribe('CollectionName');
}
});
布局使用路由选项中 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();
}
});
});
使用Iron Router,我了解了如何为模板设置数据。但是如何将数据发送到全局定义的布局?
我通过以下方式设置路由器布局:
Router.configure({ layoutTemplate: 'NAME' })
这将为我的所有路线设置布局。
但是,我想从我的个人路线向布局模板发送数据。
Router.configure({
layoutTemplate: 'NAME',
data: function() {
return CollectionName.find();
}
});
如 iron:router 文档中的 Global Default Options 所述:
You can set any of the above options on the Router itself...
其中 'above options' 是指任何 Route Specific Options
您还可以subscribe
发布Collection:
Router.configure({
layoutTemplate: 'NAME',
subscriptions: function() {
this.subscribe('CollectionName');
}
});
布局使用路由选项中 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();
}
});
});