在DOJO小部件中,postCreate和destroy方法中有代码来创建/启动和停止计时器,如下所示。根据下拉框中的值,启动或停止计时器。这到目前为止工作正常。
postCreate: function() {
var deferred = this.own(<...some action...>)[0];
deferred.then(
lang.hitch(this, function(result) {
this.t = new dojox.timing.Timer(result.autoRefreshInterval * 1000);
this.t.onTick = lang.hitch(this, function() {
console.info("get new data");
});
this.t.onStart = function() {
console.info("starting timer");
};
this.t.onStop = function() {
console.info("timer stopped");
};
})
);
this.selectAutoRefresh.on("change", lang.hitch(this, function(value) {
if (value == "Automatic") {
this.t.start();
} else {
this.t.stop();
}
}));
},
当离开页面时,计时器仍处于活动状态,所以我想在使用DOJO destroy()方法离开页面时停止它。
destroy: function() {
this.t.stop();
},
然而,这会引发this.t.stop is not a function
异常。虽然我使用this.t
lang.hitch(this...
我在这里缺少什么?
答案 0 :(得分:0)
我通过将变量t
重命名为refreshTimer
来解决这个问题。也许t
是Dojo中的某种保留变量?