2011-05-24 7 views
1

これは、標準のExtJS 4 MVCライブラリと構造を使用しています。ExtJSのコントローラに複数のビューをアタッチする4 MVC

複数のビューを1つのコントローラにアタッチしようとしているので、あとでそれらのインスタンスを作成してパネルに追加することができます。残念ながら、私は2番目のものを追加するとビューに関するエラーが発生しています.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); 
    } 
}); 

構文エラーであるか、これがフレームワークの問題であるかはわかりません。私は、これがフレームワークの制約になるかもしれないと私に信じさせる1つの中から別のコントローラにリンクしようとすると、同じ問題に近い経験をしています。

答えて

5

ここでの問題は、app/view/ViewOrders.jsスクリプト内のクラス名がビュー名と一致しないことです。 Ext.define('PVAL_APP.view.ViewOrder', {の代わりに、複数の(正しい場合)Ext.define('PVAL_App.view.ViewOrders', {が必要です。どちらかといえば、ファイル名を変更して単数形を参照して、大文字と小文字を修正することができます。

関連する問題