在我的一个模板中,我使用autorun在数据上下文更改时更改某些DOM元素,但它永远不会被触发。
Template.onRendered(function () {
this.autorun(function () {
var someData = Template.currentData().someData;
// some DOM manipulation
}
}
文档说明了Template.currentData():
建立对结果的反应性依赖。
因此,如果someData
被更改,它应该触发重新计算,不应该吗?
答案 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可能会改变这种情况。