Extjs4 在extjs中追加节点时,node.updateInfo不是函数
我试图将数据加载到extjs 4Extjs4 在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',
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版本…我发现…尝试一下我太乐观了