Meteor - Template.currentData()没有反应?

时间:2016-03-13 21:05:13

标签: javascript meteor reactive-programming meteor-blaze

在我的一个模板中,我使用autorun在数据上下文更改时更改某些DOM元素,但它永远不会被触发。

Template.onRendered(function () {
  this.autorun(function () {
    var someData = Template.currentData().someData;
    // some DOM manipulation
  }
}

文档说明了Template.currentData()

  

建立对结果的反应性依赖。

因此,如果someData被更改,它应该触发重新计算,不应该吗?

1 个答案:

答案 0 :(得分:2)

在做了一些研究并更好地理解reactive data sources and reactive computations以及我发现的基础Tracker and Autorun之后,我只需要改变

var someData = Template.currentData().someData;

var currentData = Template.currentData();
var someData = currentData.someData;

所以似乎只有Template.currentData()是一个被动数据源,但它返回的对象的属性不是

使用reactive-var可能会改变这种情况。