|

楼主 |
发表于 2018-3-27 10:41:57
|
显示全部楼层
看了动态创建组建的参考,然后实践了一下,感觉还是不能生成timer对象。
代码如下:目标:在从表中,每生成一行,以当前行号作为Map变量的Key,创建一个timer对象,采用AfterNew事件。
Model.prototype.detailDataAfterNew = function(event) {
var data = this.comp('detailData');// 获取从表当前数据集
var curRowID = data.getCurrentRowID(); // 获取当前行rowID
// 以当前行号作为key,生成timer
var option = {
model : this
}; //这一句与demo案例略有不同,因为demo中的那种写法,我不会
var interval = this.cycleMap[curRowID];// 获取前端windowdialog对话框返回的间隔周期
if (interval) { // 如果前端windowdialog对话框间隔周期返回成功
option.interval = justep.String.toInt(interval, 1000);
} else {
option.interval = 1000;// 如果 interval未定义,设为默认值
}
var times = this.timesMap[curRowID];// 获取前端windowdialog对话框返回的执行次数
if (times) {
option.times = justep.String.toInt(times, 0);
} else { // 如果未定义,设为默认值
option.times = 0;
}
option.xid = data.getCurrentRowID(); // 设置动态生成的timer xid
this.timerMap[curRowID] = new Timer(option); // 动态生产timer对象,保存在一个Map类型全局变量里面
this.timerMap[curRowID].on("onTimer", function(event) {
alert(JSON.stringify(this.timerMap[curRowID]));//动态生产的timer对象,转换成json显示
});
测试中,this.timerMap[curRowID].on("onTimer", 这个事件能每秒触发一个alert,提示信息为
Cannot read property 'E4D4E035141448BAB46BAE268647A5EE' of undefined
应该是timer对象未生成吧,上面的代码哪地方有问题?
是Map类型的变量,key对应的value 这个对象必须分配一个具体名字的对象吗?不能直接存储new()
|
-
-
|