在我的一个模板中,当数据上下文发生更改时,我使用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更改它。