2011-05-24 56 views
1

這是使用標準ExtJS 4 MVC庫和結構。將多個視圖附加到ExtJS 4中的控制器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" 

這裏是我的控制器:

Ext.define('PVAL_App.controller.Viewport', { 
    extend: 'Ext.app.Controller', 

    views: [ 
     'Viewport', 'ViewOrders' 
    ], 

    init: function() { 
     console.log('Viewport controller init()'); 
    } 
}); 

這裏是我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() { 
    } 
}); 

我懷疑這是必要的,但這個是我的應用程序文件:

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); 
    } 
}); 

我似乎無法弄清楚它是否是一個語法錯誤,或者如果這是一個框架問題。如果我嘗試從一個控制器鏈接到另一個控制器,這使我相信這可能是框架的一個約束,我也遇到了同樣的問題。

回答

5

這裏的問題是您的app/view/ViewOrders.js腳本中的類名稱與視圖名稱不匹配。而不是Ext.define('PVAL_APP.view.ViewOrder', {您需要複數(和正確的大小寫)Ext.define('PVAL_App.view.ViewOrders', {。無論是我們你可以改變你的文件名,並引用單數,只是糾正案件。