szjazz 发表于 2022-10-26 11:30:05

setData()引起的错误

本帖最后由 szjazz 于 2022-10-26 11:32 编辑

datatable没有resetData()方法来清除所有的行记录,改用管理员推荐的方法setData({}),在紧跟的语句中用到for循环语句出错

代码:
var dtDetail=this.data.datatable_detail.data;
this.form.get("datatable").setData({});
var dtSub=this.data.datatable.data;
for(var j=0;j<dtSub.length;j++){

F12的错误:

难道是datatable空行了,也就不存在length属性值了?


论坛管理员 发表于 2022-10-26 16:01:25

是,您set空了,this.data.datatable.data这里就没获取到了,就没有length了,您可以跟踪一下获取到的数据就能看出来了

szjazz 发表于 2022-10-27 10:40:03

论坛管理员 发表于 2022-10-26 16:01
是,您set空了,this.data.datatable.data这里就没获取到了,就没有length了,您可以跟踪一下获取到的数据 ...

1、setData空了,那么this.data.datatable.data数据对象应该存在着啊
2、可是为什么通过一行行的删除方法来清空数据,下方的循环却可以引用length,没有报错?

论坛管理员 发表于 2022-10-27 16:13:38

您F12跟踪一下就很清楚了,你set的是{},没有data,所以取不到。一行一行删除,删掉的是data里面的数据,不是把data删掉了
页: [1]
查看完整版本: setData()引起的错误