Ext Tree新增节点

前两天做Ext Tree新增节点时花了好长时间才成功在树上增加了新节点,现把Ext Tree新增节点的过程记录下来,作为记念。

1、  创建目录结构如下

Ext Tree新增节点_第1张图片

2、  然后分别创建控制器、model、store、view文件,完成之后文件内容如下

Ext Tree新增节点_第2张图片

3、  创建树本身没有什么难度,按Ext例子做就可以了。

4、  在新增树节点时,我无论是调用parentNode.appendChild(newNode);还是调用parentNode.insertChild(1,newNode),都是可以把节点加到指定位置的,问题是新增的节点的文本总是空的,只是显示一个节点。我也尝试:

var newNode = Ext.create('Ext.data.NodeInterface',{
                                                         text:’节点’,
                                             leaf:false
                                    });
           newNode.set("text","新增节点");
           parentNode.appendChild(newNode);

结果新增节点内容还是显示为空。

看Ext的api文档,就是这样写的呀!在网搜索,尝试,没有解决。

。。。。。。。

经过近一天的尝试,在一次尝试中发现,parentNode.createNode(newNode);的返回值不是api文档中写的: createNodeObject node ) : Boolean,而是返回创建的节点!尝试把createNodeObject node )返回值作为appendChild的参数添加到节点中去,竟然成功!

正确新增节点的过程:

            // 新增加节点
            var newNode = Ext.create('Ext.data.NodeInterface',{
         				leaf: false
         			});
            var parentNode;
            if(selectNodes.length==0){
                parentNode = Ext.getCmp('myTree').getRootNode();
            }
            else
                parentNode = selectNodes[0];
             /**
             * 新增节点关键在这个地方的了,一定要先用parentNode.createNode()创建一个节点,用parentNode.appendChild把节点加到父节点中
             * Ext4的Api上讲的parentNode.createNode()返回的是Boolean,实际返回的是创建的节点,就是因为这个地方,让我折腾了一天的时间
             * 查看Ext的源文件,也证明了parentNode.createNode()返回的创建的节点(NodeInterface.js的365行与ext-all-debug的37668行的内容一样,如下):
             * createNode: function(node) {
             *	if (Ext.isObject(node) && !node.isModel) {
             *		node = Ext.ModelManager.create(node, this.modelName);
             *	}
             *	return node;
             *},
             */
            var newNode = parentNode.createNode(newNode);
            newNode.set("text","新增节点");
            newNode.set("leaf",false);
            parentNode.appendChild(newNode);

至此,问题解决,原因是ext4的api文档的一个错误造成的。

源代码资源:http://download.csdn.net/detail/littlechang/4443542

你可能感兴趣的:(api,function,ext,tree,文档)