在ExtJS 4 MVC中将多个视图附加到控制器

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)

我似乎无法弄清楚它是否是语法错误或者这是否是框架的问题.如果我尝试从一个控制器链接到另一个控制器,这让我相信这可能是框架的约束,我遇到了接近同样的问题.

Sim*_*all 5

这里的问题是app/view/ViewOrders.js脚本中的类名与视图名称不匹配.而不是Ext.define('PVAL_APP.view.ViewOrder', {你需要复数(和正确的情况)Ext.define('PVAL_App.view.ViewOrders', {.要么我们你可以改变你的文件名并引用单数并纠正案例.