Meteor.subscribe() 属于哪里?
Where does Meteor.subscribe() belong?
我刚刚注意到我的 JS 文件顶部的订阅代码 "Meteor.subscribe('my-publications')" 会影响我的所有模板,而不仅仅是 JS 文件为其创建的模板。
这是出乎意料的,因为所有的演示都是这样做的。
如果我想让它只影响一个模板,订阅代码应该在什么地方?在 Template.name.created()?
里面
不要假设 minimongo 中唯一的数据就是与您的模板相关的数据。为模板选择数据时要具体。
就订阅而言,您有多种选择,目前最常见的是向路由定义的 waitOn
部分添加订阅。使用 waitOn
将导致在路由不再使用时取消订阅。
Router.map(function() {
this.route('route', {
waitOn: function(){ return Meteor.subscribe("yourSub"; }
});
});
您也可以按模板订阅。可以通过
添加我为此目的创建的包
meteor add elevatedevdesign:template-subscriptions
这种模式也将很快成为 blaze 的一部分,但您对它的称呼会略有不同。当模板不再处于活动状态时,这将自动取消订阅。它还允许在模板销毁时订阅子管理器。
我刚刚注意到我的 JS 文件顶部的订阅代码 "Meteor.subscribe('my-publications')" 会影响我的所有模板,而不仅仅是 JS 文件为其创建的模板。
这是出乎意料的,因为所有的演示都是这样做的。
如果我想让它只影响一个模板,订阅代码应该在什么地方?在 Template.name.created()?
里面不要假设 minimongo 中唯一的数据就是与您的模板相关的数据。为模板选择数据时要具体。
就订阅而言,您有多种选择,目前最常见的是向路由定义的 waitOn
部分添加订阅。使用 waitOn
将导致在路由不再使用时取消订阅。
Router.map(function() {
this.route('route', {
waitOn: function(){ return Meteor.subscribe("yourSub"; }
});
});
您也可以按模板订阅。可以通过
添加我为此目的创建的包meteor add elevatedevdesign:template-subscriptions
这种模式也将很快成为 blaze 的一部分,但您对它的称呼会略有不同。当模板不再处于活动状态时,这将自动取消订阅。它还允许在模板销毁时订阅子管理器。