Flow Router param不改变内部钩子和订阅

时间:2015-11-08 19:41:53

标签: javascript node.js meteor flow-router meteor-tracker

我正在使用

Template.taskList.onCreated( () => {
  var projectId = FlowRouter.getParam( 'projectId' );
  var postHooks = {
    before: {
      insert: function ( doc ) {
        doc.projectId = projectId;
        return doc;
      }
    }
  };

  Template.instance().subscribe( 'tasks', projectId );
  AutoForm.addHooks( 'addTask', postHooks );
} );

projectId添加到所有已创建的任务,并订阅具有指定projectId的任务。

但是,当我使用projectId更改FlowRouter.setParam( 'projectId' ... )时,似乎projectId在我的挂钩和订阅中没有变化。

我做错了什么?我是否必须将其放入Tracker.autorun()或其他内容?是因为我使用onCreated代替onRendered吗?

1 个答案:

答案 0 :(得分:0)

是的,您确实需要使用autorun。原因是流路由器参数不是一个反应数据源,即它们的值的变化不会触发代码的重新评估。