Khi*_*rok 1 model-view-controller extjs4 extjs-mvc
这是使用标准的ExtJS 4 MVC库和结构.
我试图将多个视图附加到单个控制器,以便稍后我可以创建它们的实例以添加到面板.不幸的是,当我添加第二个时,我收到有关视图的错误,并且ExtJS阻止了它出现的语法错误,因此我无法查看问题所在.
如果我从下面的列表中注释掉ViewOrders它工作正常,但如果它在那里,那么我得到以下错误:
An uncaught error was raised with the following data: ext-all-debug-with-comments.js (line 7864)
msg:
"The following classes are not declared even if their files have been loaded: 'PVAL_App.view.ViewOrders'. Please check the source code of their corresponding files for possible typos: 'app/view/ViewOrders.js'"
sourceClass: "Ext.Loader"
sourceMethod: "onFileLoaded"
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
Ext.define('PVAL_App.controller.Viewport', {
extend: 'Ext.app.Controller',
views: [
'Viewport', 'ViewOrders'
],
init: function() {
console.log('Viewport controller init()');
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的ViewOrders视图:
Ext.define('PVAL_APP.view.ViewOrder', {
/* Begin Definitions */
extend: 'Ext.panel.Panel',
alias: 'widget.ViewOrders',
requires: [
'Ext.panel.Panel',
'Ext.data.ArrayStore'
],
border:false,
layout: 'fit',
//autoScroll: true,
initComponent: function() {
}
});
Run Code Online (Sandbox Code Playgroud)
我怀疑这是必要的,但这是我的应用程序文件:
Ext.Loader.setConfig(
{
enabled: true
});
Ext.application({
name: 'PVAL_App',
appFolder: 'app',
autoCreateViewport: true,
controllers: [
'PVAL_App', 'Viewport'
],
launch:function() {
// Nothing yet.
//console.log(this.controllers);
}
});
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚它是否是语法错误或者这是否是框架的问题.如果我尝试从一个控制器链接到另一个控制器,这让我相信这可能是框架的约束,我遇到了接近同样的问题.
这里的问题是app/view/ViewOrders.js脚本中的类名与视图名称不匹配.而不是Ext.define('PVAL_APP.view.ViewOrder', {你需要复数(和正确的情况)Ext.define('PVAL_App.view.ViewOrders', {.要么我们你可以改变你的文件名并引用单数并纠正案例.
| 归档时间: |
|
| 查看次数: |
5699 次 |
| 最近记录: |