【发布时间】:2015-10-18 08:22:25
【问题描述】:
我使用 ExtJs 6.0.0 和 Sencha Cmd 6.0.2 并使用 MVC 架构,我有一个由 Sencha Cmd 生成的简单应用程序,如下所示:
// MyApp/store/Personnel.js
Ext.define('MyApp.store.Personnel', {
extend: 'Ext.data.Store',
alias: 'store.personnel',
fields: [
'name', 'email', 'phone'
],
data: {
items: [{
name: 'Jean Luc',
email: "jeanluc.picard@enterprise.com",
phone: "555-111-1111"
}]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty: 'items'
}
}
});
// MyApp/app/view/main/List.js
Ext.define('MyApp.view.main.List', {
extend: 'Ext.grid.Panel',
xtype: 'mainlist',
requires: [
'MyApp.store.Personnel'
],
title: 'Personnel',
store: 'Personnel',
//store: {
// type: 'personnel'
//},
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone',
flex: 1
}],
listeners: {
select: 'onItemSelected'
}
});
// MyApp/app/Application.js
Ext.define('MyApp.Application', {
extend: 'Ext.app.Application',
name: 'MyApp',
stores: [
// TODO: add global / shared stores here
'Personnel'
]
});
是的,我想在 List 的视图中使用 Personnel 商店的短名称(只有 Classname 没有 Namespace),但它不起作用。 但是在Ticket App中(Sencha官方推荐的例子也在SDK中)这样使用并且可以正常工作,为什么我的不能正常工作? app.json 看起来一样。
【问题讨论】:
-
尝试在 Application.js 中填写它说要添加全局/共享存储的那一行...
-
对不起,它在那里而且应该在那里,我只是在上面的帖子中有一个错误......
-
“它不起作用”是什么意思?有什么错误吗?如果您在网格中看不到数据,请尝试从数据中删除项目并将对象直接放入数据数组中。本地数据不使用代理。您的代码应该可以在没有任何商店 ID 的情况下工作。
-
没有错误,只是没有渲染 TreeNode 或 Grid 内容。
-
如果我使用完整的商店名称(MyApp.model.Personnel)或 storeId,它可以正常工作。
标签: javascript extjs extjs6