1

これは、標準のExtJS4MVCライブラリと構造を使用しています。

複数のビューを単一のコントローラーにアタッチして、後でそれらのインスタンスを作成してパネルに追加できるようにしようとしています。残念ながら、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);
  }
});

構文エラーなのか、フレームワークの問題なのかわからないようです。あるコントローラー内から別のコントローラーにリンクしようとすると、これがフレームワークの制約である可能性があると思われるため、ほぼ同じ問題が発生しました。

4

1 に答える 1

5

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

于 2011-05-27T13:56:24.110 に答える