gpt4 book ai didi

extjs - 包含数据存储会使应用程序无法加载

转载 作者:行者123 更新时间:2023-12-01 12:58:35 25 4
gpt4 key购买 nike

我无法让我的应用程序使用 MVC 架构工作。

代码如下:

应用程序.js

Ext.application({
name: CONFIG.APP_NS,
appFolder: '../js/app',
autoCreateViewport: true,

/*
models: ['User'],

stores: ['Users'],
//*/

controllers: ['Main', 'Tab', 'Import', 'Export', 'Predict', 'Admin']
});

Import.js( Controller )

Ext.define(CONFIG.APP_NS+'.controller.Import', {
extend: 'Ext.app.Controller',

//stores: ['Users'], //Uncommenting this makes the application not load at all
models: ['User'],
views: ['Import.Window', 'Import.Toolbar', 'Import.Grid'],

init: function(){
...
},

...
});

User.js(模型)

Ext.define(CONFIG.APP_NS+'.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'username', type: 'string'},
{name: 'password', type: 'string'},
{name: 'salt', type: 'string'},
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'email', type: 'string'},
{name: 'admin', type: 'boolean'},
{name: 'authenticated', type: 'boolean'}
],

hasMany: {model: CONFIG.APP_NS+'.model.Roles', name: 'roles'},

proxy: {
type: 'ajax',
url: 'model/users',
reader: {
type: 'json'
}
}
});

Ext.define(CONFIG.APP_NS+'.model.Roles', {
extend: 'Ext.data.Model',

fields: [
{name: 'role', type: 'string'}
],

belongsTo: CONFIG.APP_NS+'.model.User'
});

Users.js(商店)

Ext.define(CONFIG.APP_NS+'store.Users', {
extend: 'Ext.data.Store',
requires: CONFIG.APP_NS+'.model.User',
model: CONFIG.APP_NS+'.model.User'
});

Grid.js( View )

Ext.define(CONFIG.APP_NS+'.view.Import.Grid', {
extend: 'Ext.grid.Panel',
alias: 'widget.importgrid',

initComponent: function() {
this.store = Ext.create('Ext.data.Store', { //Works fine with the code as it is
model: CONFIG.APP_NS+'.model.User',
proxy: {
type: 'ajax',
url: 'model/users',
reader: {
type: 'json'
}
}
});
//*/
//this.store = Ext.create(CONFIG.APP_NS+'.store.Users', {});

this.columns = [
{header: 'Name', dataIndex: 'username', flex: 1},
{header: 'Email', dataIndex: 'email', flex: 1}
];

this.callParent(arguments);

this.store.load();
}
});

我已经在不同的文件中尝试了几乎所有的 stores: 组合,似乎没有什么可以解决的。如果我不在任何地方包含商店,我会得到错误 Object is not a function(或者 TypeError: Cannot call method 'on' of undefined if defined outside of em>initComponent 在内部 extjs 文件的某处。看来,即使我从教程示例中复制结构,它仍然不起作用,所以我一定遗漏了一些东西。

我做错了什么?

感谢您的宝贵时间。

编辑:

我在 Wamp(本地主机)上运行这段代码。服务器同时安装并运行了 ExtJS4 和 Symfony。

更新了错误消息。

修正了模型中的拼写错误,请参阅评论。

最佳答案

(我看到您在 app.js 中注释掉了商店。这是故意的吗?)

我遇到了类似的问题。当我将商店添加到我的 app.js 和 view.js(网格面板)后,我的应用程序停止工作。

我很确定我通过将商店(所有商店)添加到 Controller app.js 来修复它。好的..再次检查,如果 store 从 controller.js 中丢失,我会收到一条不同的错误消息:“Uncaught TypeError: Cannot call method 'on' of undefined”(这是在 chrome 上)。错误消息略有不同。

此外,考虑注释掉 this.store.load().. 即删除服务器数据访问变量 -(一次一个。)

关于extjs - 包含数据存储会使应用程序无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com