javascript - meteor 铁路由器 : When is 'data' called?

标签 javascript meteor

这是有问题的路线:

this.route('meeting', { 
  path: '/meeting/:_id',
  template: 'meeting',
  waitOn: function(){
    console.log("iron-router: meeting waitOn");
    return Meteor.subscribe('meetings');
  },
  data: function() {
    console.log("iron-router: meeting data");
    return Meetings.findOne({"uuid":this.params._id});
  },
  onBeforeAction: OnBeforeActions.loginRequired,
  action: function () {
    console.log("iron-router: meeting action");
    if (this.ready()) {
      this.render();
    }
  }
});

session 模板有一个嵌套的日历模板,其中包含28个模板。我试图弄清楚何时/为何调用 iron-router data 函数,因为我在加载页面时看到了这一点:

iron-router: meeting waitOn
iron-router: meeting data
iron-router: meeting data
iron-router: meeting waitOn
iron-router: loginRequired
iron-router: meeting action
iron-router: meeting data
iron-router: meeting data
(28x) iron-router: meeting data

这是对同一件事的多次重复调用!为什么?

最佳答案

只要数据中的任何反应变量发生更改,就会调用数据。在您的例子中,Meetings 集合。

当您的应用程序加载时,每当您集合中的每个文档添加到客户端时,它都会重新运行。它最初也会运行一次以注册 react 性依赖项。

它将运行多次,如果有更改,它们将被绘制到 DOM 中。如果不是,它将不会进一步更新 DOM。重新运行是为了检查更改。

关于javascript - meteor 铁路由器 : When is 'data' called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515989/

相关文章:

javascript - 如何使用 Meteor 创建异步 RESTful 接口(interface)

javascript - Meteor.js Cordova 错误 : ERROR whitelist rejection

meteor - 更新用户角色的方法在使用 Collection2 包时出错

javascript - Immutable.js 拆分 Map 类型的键

javascript - Node.js 和 JavaScript 中的子类化模块(没有辅助实用程序)

javascript - GWT:调用外部 JavaScript 库 (sjcl) 方法

Meteor autoform 删除星号表单单选选项

javascript - 为什么这些空的脚本标签会阻止我的页面工作?

javascript - 在 React 上实现 react-notification-system

javascript - 将自定义字段添加到 Meteor 用户时出现权限问题