Meteor中的模板级订阅

时间:2015-11-06 19:04:43

标签: javascript node.js meteor

我正在使用

Template.blogPost.onCreated(function() {
  var postId = FlowRouter.getParam('postId');
  self.subscribe('singlePost', postId);  
});

然而,我见过

的例子
Template.blogPost.onCreated(function() {
  var self = this;
  self.autorun(function() {
    var postId = FlowRouter.getParam('postId');
    self.subscribe('singlePost', postId);  
  });
});

有什么区别,哪种方式是首选方式?

1 个答案:

答案 0 :(得分:0)

第二个版本对您路线中postId参数的更改有效。根据您在流路由器中定义路由的方式,每次更改postId参数时,您可能会也可能不会创建新模板。如果您不这样做(并且最好不要尝试),那么第二个实现仍然会将您的订阅更新为URL中参数的正确选择。

如果您不需要反应性,例如,因为每次访问新路线时您都会重新创建模板,那么第一个就没问题。但实际上,即使这样,使用第二种方法也没有什么害处,除了代码的可读性之外。