比较 Meteor.subcribe() 与 this.subscribe() [流星 + 火焰]
Compare Meteor.subcribe() Vs this.subscribe() [Meteor + Blaze]
我有两个pages/Template,
- 仪表板(也包含一些用户特定数据)。
- 用户。
我正在使用带有 Blaze 模板的 Meteor 1.5。着陆页是仪表板。我在两个模板中都使用 Collection Users
的通用订阅。
场景一
当我在 仪表板的 template.onCreated()
中使用 Meteor.subscribe('Users')
并转到 Users 页面时,我已经看到了一些从 Dashboard 的 订阅返回的订阅数据。
代码:
Template.DashBoard.onCreated(function(){
Meteor.subscribe('Users');
});
Template.Users.onCreated(function(){
Meteor.subscribe('Users');
});
场景二
当我在 仪表板的 template.onCreated()
中使用 this.subscribe('Users')
并转到 Users 页面时,我得到了一个 Fresh此处进行订阅,没有数据从 Dashboard 的 订阅。
代码:
Template.DashBoard.onCreated(function(){
this.subscribe('Users');
});
Template.Users.onCreated(function(){
this.subscribe('Users');
});
问题
Meteor.subscribe('Users')
和 this.subscribe('Users')
和有什么不一样?使用 this.subscribe('Users')
会产生什么影响?
如 Meteor 文档中所述,当模板实例被销毁时,模板代码中的 this.subscribe
将自动取消订阅。
而 Meteor.subscribe
如果您愿意,需要明确取消订阅。
使用其中一种取决于您的应用程序结构。如果您确定数据仅与给定模板相关,则使用模板范围订阅,即 this.subscribe
.
如果跨多个页面使用数据,请使用 "global" 表单,或在更高的模板级别限定范围(在您的页面中持续存在的模板,例如在布局上)。
我有两个pages/Template,
- 仪表板(也包含一些用户特定数据)。
- 用户。
我正在使用带有 Blaze 模板的 Meteor 1.5。着陆页是仪表板。我在两个模板中都使用 Collection Users
的通用订阅。
场景一
当我在 仪表板的 template.onCreated()
中使用 Meteor.subscribe('Users')
并转到 Users 页面时,我已经看到了一些从 Dashboard 的 订阅返回的订阅数据。
代码:
Template.DashBoard.onCreated(function(){
Meteor.subscribe('Users');
});
Template.Users.onCreated(function(){
Meteor.subscribe('Users');
});
场景二
当我在 仪表板的 template.onCreated()
中使用 this.subscribe('Users')
并转到 Users 页面时,我得到了一个 Fresh此处进行订阅,没有数据从 Dashboard 的 订阅。
代码:
Template.DashBoard.onCreated(function(){
this.subscribe('Users');
});
Template.Users.onCreated(function(){
this.subscribe('Users');
});
问题
Meteor.subscribe('Users')
和 this.subscribe('Users')
和有什么不一样?使用 this.subscribe('Users')
会产生什么影响?
如 Meteor 文档中所述,当模板实例被销毁时,模板代码中的 this.subscribe
将自动取消订阅。
而 Meteor.subscribe
如果您愿意,需要明确取消订阅。
使用其中一种取决于您的应用程序结构。如果您确定数据仅与给定模板相关,则使用模板范围订阅,即 this.subscribe
.
如果跨多个页面使用数据,请使用 "global" 表单,或在更高的模板级别限定范围(在您的页面中持续存在的模板,例如在布局上)。