0

我在用

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

但是,当我更改projectIdwith时FlowRouter.setParam( 'projectId' ... ),我的钩子和订阅似乎projectId没有改变。

我究竟做错了什么?我必须把它放在里面Tracker.autorun()还是什么?是因为我使用onCreated而不是onRendered

4

1 回答 1

0

是的,您确实需要使用autorun. 原因是流路由器参数不是响应式数据源,也就是说,它们的值的变化不会触发依赖于它的代码的重新评估。

于 2015-11-08T19:46:51.100 回答