在我的一个模板中,当数据上下文发生更改时,我使用autorun更改了某些DOM元素,但从未触发过。

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


文档指出Template.currentData()


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


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

最佳答案

在进行了一些研究并更好地理解了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更改它。

07-24 17:15