javascript - Meteor:Iron-Router 数据更新时的 Tracker.autorun

标签 javascript meteor iron-router

我正在使用 iron-router 的 data 函数为我的 HTML 模板提供数据。

来自 router.js 的片段:

data: function() {
    liveData = {
      dataA: Collection.findOne({queryA}),
      dataB: Collection.findOne({queryB})
    };
    return liveData;
}

在我的模板中,liveData 对象是响应式的。当 Collection 改变时,liveData 也会改变——太棒了!

但我的问题是:我在 Template.name.rendered 中有一个名为 computation() 的 javascript 函数,它使用 liveData 对象。它在页面加载时运行一次 - 很好 - 但在页面加载后,liveData 正在更改但计算不会重新运行。当 iron-router 的数据源 liveData 发生变化时,如何强制 computation() 重新运行?

最佳答案

Template.name.rendered = function(){
  this.autorun(function(){
    var data = Router.current().data();
    computation(data);
  });
}

关于javascript - Meteor:Iron-Router 数据更新时的 Tracker.autorun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095360/

相关文章:

javascript - 在 Meteor 中访问 Stylus 中的 Javascript 变量

javascript - 第一次单击浏览器后退时无法让 Iron 路由器工作

javascript - 如何捕获 saveChanges 上的错误 - Google 应用制作工具

javascript - 从 Facebook 帖子获取点赞

Javascript函数onclick,后退按钮到 "refresh"页面

javascript - Iron Router 动态路由不会重新渲染

meteor - 如何在 meteor iron-router 中向 URL 添加哈希?

javascript - 使用 Kendo UI 进行嵌套过滤

html - 将缓存 list 添加到 Meteor 应用程序的简单方法?

cordova - 在 meteor Cordova 应用程序中播放本地音频