Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs4 在extjs中追加节点时,node.updateInfo不是函数_Extjs4_Treepanel - Fatal编程技术网

Extjs4 在extjs中追加节点时,node.updateInfo不是函数

Extjs4 在extjs中追加节点时,node.updateInfo不是函数,extjs4,treepanel,Extjs4,Treepanel,我试图将数据加载到extjs 4TreeStore中,但在附加节点时,我得到了node.updateInfo不是一个函数错误 我的模型类如下: Dimension.js Ext.define('ilp.model.Dimension', { extend : 'Ext.data.Model', require : [ 'ilp.model.DimensionLevel' ], fields : [ 'actualName',

我试图将数据加载到extjs 4
TreeStore
中,但在附加节点时,我得到了
node.updateInfo不是一个函数
错误

我的模型类如下:

Dimension.js

Ext.define('ilp.model.Dimension', {
    extend : 'Ext.data.Model',
    require : [
        'ilp.model.DimensionLevel'
    ],
    fields : [
        'actualName', 
        'displayName'
    ],
    hasMany : {model : 'ilp.model.DimensionLevel', name : 'dimensionLevels'}
});
Ext.define('ilp.model.DimensionLevel', {
    extend : 'Ext.data.Model',
    fields : [
        {name : 'name', type : 'string'},
        {name : 'totalTrainees', type : 'int'}
    ]
});
DimensionLevel.js

Ext.define('ilp.model.Dimension', {
    extend : 'Ext.data.Model',
    require : [
        'ilp.model.DimensionLevel'
    ],
    fields : [
        'actualName', 
        'displayName'
    ],
    hasMany : {model : 'ilp.model.DimensionLevel', name : 'dimensionLevels'}
});
Ext.define('ilp.model.DimensionLevel', {
    extend : 'Ext.data.Model',
    fields : [
        {name : 'name', type : 'string'},
        {name : 'totalTrainees', type : 'int'}
    ]
});
树存储代码如下所示:

Ext.define('ilp.store.DimensionTree', {
    extend : 'Ext.data.TreeStore',
    requires : [
        'ilp.model.Dimension',
        'ilp.model.DimensionLevel'
    ],
    model : 'ilp.model.Dimension',

    root: {
    name: 'Dimensions'
    },

    proxy: {
    type: 'ajax',
    url: 'http://localhost:8080/pentaho/content/cda/doQuery',
    reader: {
            type: 'pentahoReader',
        root: 'resultset'
    },
    extraParams: {
        path: 'RINXDashboards%2FCDAs%2FILP_Employee_Qeries.cda',
        dataAccessId:'Get_All_Levels_From_All_Dimensions',
        userid : 'joe',
        password : 'password'
    }
    },

    listeners: {
    append : function(parentNode, newNode, index, options) {
            if(newNode.get('text') != 'Root') {
        console.log('newNode text value = ' + newNode.get('text'));
        newNode.set('checked', null);
        newNode.set('expandable', true);
        if(Ext.ClassManager.getName(newNode) == "ilp.model.Dimension") {
            newNode.set('expanded', true);
        newNode.set('text', newNode.get('displayName'));
        if(newNode.dimensionLevels().getCount() > 0) {
            newNode.dimensionLevels().each(function(level) {
            newNode.appendChild(level);
        });
        } else {
        newNode.set('leaf', true);
              }
        }else if(Ext.ClassManager.getName(newNode) == "ilp.model.DimensionLevel") {
            newNode.set('leaf', true);
        newNode.set('text', newNode.get('name'));
        }
    }
      }
    }
});
我在以下行中遇到上述错误:
newNode.dimensionLevels().each(函数(级别){

在调试时,我发现
updateInfo()
newNode
方法是
未定义的


有人能告诉我为什么会出现这个错误吗?我现在完全不知道!!!

这可能是由错误EXTJSIV-6051引起的


有关更多信息,请参阅。我认为您的问题来自:

root: {
   name: 'Dimensions'
},
根属性的类型必须为:Ext.data.Model/Ext.data.NodeInterface/Object。因此,请尝试将“根”属性替换为:

root: {
    text: "Dimensions",
    leaf: false
}

查看Sencha doc了解更多信息:

谢谢..由于这个bug,我不得不切换回ExtJS 4.0.1版本…我发现…尝试一下我太乐观了