最近要把Ext3.0的项目升级到Ext4.2,但是在菜单树动态构建的时候出问题了.Ext4以后用Ext.data.NodeInterface取代了之前的Ext.tree.TreeNode,对这个NodeInterface,官方API中有好多方法都没看到,比如appendChild(),firebug进去一看,根本就没有这些方法.源代码里面明明有的啊.我真的是纳闷了.请大家帮忙看看这是什么原因,谢谢了!!
最近要把Ext3.0的项目升级到Ext4.2,但是在菜单树动态构建的时候出问题了.Ext4以后用Ext.data.NodeInterface取代了之前的Ext.tree.TreeNode,对这个NodeInterface,官方API中有好多方法都没看到,比如appendChild(),firebug进去一看,根本就没有这些方法.源代码里面明明有的啊.我真的是纳闷了.请大家帮忙看看这是什么原因,谢谢了!!
原来NodeInterface是个接口类,直接new出来是不会有和treeNode相关的那些方法的.查看源代码,发现一切答案都在其静态方法:decorate()里面.该方法将传入一个Model的实例或Class类包装成适合tree节点的Model,把那些tree节点相关的方法事件属性啥的都拷贝到里面.这样传入的类或者实例拥有了appendChild等方法啦.
参考资料:http://blog.csdn.net/leecho571/article/details/6799059