我试图在我的视图中简单地加载一个网格面板,其中包含来自商店的数据,但我不断收到以下错误:
TypeError: name is undefined
Line: if (name === from || name.substring(0, from.length) === from) {
我已经尝试过如何初始化面板,这是我目前所拥有的:
Ext.define('BP.view.induction.RightPage', {
extend: 'Ext.tab.Panel',
alias : 'widget.rightpage',
title: "Right Page",
items: [
{
title: 'Tasks',
html: '',
cId: 'tasksTab',
initComponent: function() {
this.add( [{
store: 'Tasks',
xtype: 'taskgrid',
hideHeaders: true,
columns: [
{
text : 'Task ID',
flex : 0,
sortable : false,
hidden : true,
dataIndex: 'id'
},
{
text : 'Task',
flex : 1,
sortable : false,
dataIndex: 'name'
},
]
}]);
this.callParent();
}
},{
title: 'Content',
html: '',
cId: 'contentTab'
}
]
});
最初我没有 initComponent 函数,而是立即构建项目 - 但这产生了同样的错误。
[编辑]根据要求,这是商店定义:
Ext.define('BP.store.Tasks', {
extend: 'Ext.data.Store',
requires: 'BP.model.Task',
model: 'BP.model.Task',
proxy: {
type: 'ajax',
url : '/resources/data/tasks.php',
reader: {
type:'json',
root:'tasks'
}
},
autoLoad: true
});
完整的数据很笨拙,但这里有一个示例(json 格式):
{"success":true,
"tasks":[
{"id":1,"name":"Cleaning Products","content":"Lorem ipsum...","resource_type":"text","resource_url":"","category_id":1},
{"id":2,"name":"Preservatives","content":"Lorem ipsum...","resource_type":"text","resource_url":"","category_id":1}]
}