1

以前にこの投稿を誤って削除したので、再送信します:\

私はExtJSとMVC全般に不慣れで、アプリ内の境界パネル内にネストされたパネル内にネストされたチャートを使用してアプリを作成しようとしています。[上から下にビューポート>境界パネル>「中央領域」のパネル>チャート]

境界パネル内にパネルをネストする理由は、ネストされたパネルがグラフとグラフのツールバーの両方を保持するためです。どちらもユーザーの選択に応じて動的になります。

ボーダーパネルに外部定義のチャートビューを参照させるだけでうまくいきますが、外部定義のパネルビューを参照させると、「Uncaught TypeError:Undefinedのメソッド「substring」を呼び出せません」がスローされ、Aptanaから「名前空間」が返されます。ネストされたパネルがチャートを参照するか、単に空のままにするかどうかに関係なく、「未定義」の名前空間エラー。名前の間隔を再確認したので、問題を探し始める場所が少し迷っています。

私のベースアプリケーションファイルは次のとおりです。

Ext.application({
    name: 'Chart',

    appFolder: 'chart',

    controllers:['sidebar.Navigation', 'commoditycontrol.Commoditycontrol',    
    'chart.oil.Spreads'],

    launch: function() {
        Ext.create('Ext.container.Viewport', {
            layout: 'border',
            items: [{
                region: 'north',
                xtype: 'commoditycontrol',
            }, {
                region: 'east',
                xtype: 'sidebarnavigation',
            }, {
                region: 'center',
                xtype: 'oilbase',
            }]
        });
    },

});

'oilbase'ビューは、チャートとチャートツールバービューをインポートする単なるパネルです(この場合、ツールバービューは省略しています)

Ext.define('Chart.view.base.Oil', {
   extend: 'Ext.panel.Panel',
   alias: 'widget.oilbase',

   name: 'oilbase',
   layout: 'fit',

   items: [{
       xtype: 'oilspreads'
   }]

});

そして、これがチャートビュー「oilspreads」です

Ext.define('Chart.view.chart.oil.Spreads', {
   extend: 'Ext.chart.Chart',
   alias: 'widget.oilspreads',

   name: 'oilspreads',
   layout: 'fit',
   store: 'Chart.store.oil.Spreads',
   config: {
   style: {
            background: '#333333'
          },
    },

    axes: [
        {
            title: 'Close',
            type: 'Numeric',
            position: 'left',
            fields: ['close'],
            minimum: 0,
            maximum: 100,
            cls: 'axis'
        },
        {
            title: 'Month',
            type: 'Category',
            position: 'bottom',
            fields: ['month'],
            cls: 'axis'
        }
    ],

    series: [
        {
            type: 'line',
            xField: 'month',
            yField: 'close'
        }
    ]
});

繰り返しますが、「oilbase」の空のパネルではなく、アプリケーションでチャートビューを参照すると、すべてが正常に機能します。デフォルトのパネルxtypeを参照すると、すべてが同様に機能します。

ネスティングパネルは単に推奨されていませんか?私の直感は、明らかな名前空間の問題が見当たらないということですが、ExtJのMVCパターンに対する私のアプローチについてのコメントと同様に、2番目のセットをいただければ幸いです。

ありがとう

4

1 に答える 1

0

ビューを正しくロードするには、アプリのビュー構成またはいずれかのコントローラーのビュー構成で定義する必要があります。

于 2012-07-04T02:02:54.370 に答える