zTree报: Cannot read property 'substring' of undefine
ztree吧
全部回复
仅看楼主
level 2
JoLemmo 楼主
本人zTree新手一枚,最近公司需要用zTree做树形结构。但是页面控制台一直报:TypeError: Cannot read property 'substring' of undefined错误。
我的后台有一个简单的list数据如下:
String str1 = "{ name:'一级分类1-没有子节点',click:false, isParent:true}";
String str2 = "{ name:'一级分类1-没有子节点',click:false, isParent:true}";
String str3 = "{ name:'一级分类1-没有子节点',click:false, isParent:true}";
JS中我用angularJS获取后台返回的数据并zNodes = data;(注意!慈溪浒都是能得到数据的,我用$log.info()打印能得到数据:{ name:'一级分类1-没有子节点',click:false, isParent:true},{ name:'一级分类1-没有子节点',click:false, isParent:true},{ name:'一级分类1-没有子节点',click:false, isParent:true}
但是接下来$.fn.zTree.init($("#treeDemo"), setting, zNodes);就报TypeError: Cannot read property 'substring' of undefined错误。
请教各位大神这是什么原因。我觉着这已经是一个很简单的数据了
2015年07月20日 01点07分 1
level 2
JoLemmo 楼主
String str1 = "{ id:1, pId:0, name:'普通的父节点', t:'我很普通,随便点我吧', open:true}";
String str2 = "{ id:2, pId:0, name:'NB的父节点', t:'我很普通,随便点我吧', open:true}";
String str3 = "{ id:3, pId:0, name:'郁闷的父节点', t:'我很普通,随便点我吧', open:true}";
string数据是这样的
2015年07月20日 02点07分 2
老大 你整个数据格式是哪里错的啊 ,ID 和PID 必须是字符串码
2016年12月22日 01点12分
level 2
JoLemmo 楼主
已经解决
2015年07月20日 04点07分 3
怎么解决的?格式出错?
2015年11月24日 07点11分
@aiyouwocaogd 是的,就是数据格式错误,仔细检查一下你的数据吧
2015年11月25日 12点11分
@JoLemmo 确实 谢谢了
2015年12月08日 14点12分
level 1
[img pic_type= width= height=]file:///C:\Users\cdkj\Documents\Tencent Files\847277191\Image\C2C\QVDL{Q5@606YAT6)U6BG4B9.png[/img][img pic_type= width= height=]file:///C:\Users\cdkj\Documents\Tencent Files\847277191\Image\C2C\QVDL{Q5@606YAT6)U6BG4B9.png[/img]
这是我的数据格式,应该没错了的吧。
2016年04月14日 08点04分 4
level 1
咋解决的 能晒下吗?
2016年05月03日 03点05分 5
level 1
这报错
2016年05月03日 03点05分 6
再检查检查你的JSON数据格式吧,肯定哪有不对的地方
2016年05月16日 05点05分
我的哥 你这里解决了吗我的哥
2016年11月30日 07点11分
必须是字符码吗?为什么这个测试是数字 var zNodes =[ {id:4, pId:0, name:"河北省"}, {id:41, pId:4, name:"石家庄"}, {id:42, pId:4, name:"保定"},这是一个测试的json数据,为什么也行?哪位大佬为我解释下
2018年01月20日 09点01分
level 1
你需要确定后台返回的是json对象哦
2016年11月01日 07点11分 7
level 1
有没有解决的方法,我也遇到这个问题;
2017年05月02日 06点05分 8
level 1
错误原因:id或pid为数字型,在ajax中获取list并转换为json字符串,默认还是数字型
js中数字型 没有substring的方法。
解决方案:
1.修改ID或PID为UUID等非数字型
2.js中变成String类型
最佳方法:
报错行前加入 tId+="";
通过拼接空字符串js将数字型的参数识别为字符型。
注意事项:
1:确定修改是你引用的文件,jquery.ztree.core.min.js与 jquery.ztree.core.js不是一个文件
2.项目或浏览器存在缓存问题 如果修改还出现异常 则需要清空
getNodeCacheId: function (tId) {
tId+="";//增加这行
return tId.substring(tId.lastIndexOf("_") + 1);
},
2019年03月15日 03点03分 10
1