0

最初の単純な mvc アプリを作成しようとしています。メイン ビューと製品ビューがあります。メインコントローラーもあります。My Products ビューは Ext.List を拡張します。私の問題は、データと itemTpl を設定したにもかかわらず、リストに何も表示されないことです。これが私のコードです:

app.js

Ext.application({
    name: 'SenchaTest',


    controllers: ['Main'],


    launch: function() {
        // Destroy the #appLoadingIndicator element
        Ext.fly('appLoadingIndicator').destroy();

        Ext.create('SenchaTest.view.Main');
    },
});

ビュー/Main.js

Ext.define('SenchaTest.view.Main', {
    extend: 'Ext.TabPanel',
    requires:['Ext.data.Store'],

    config: {
        fullscreen: true,
        items:[
            {
                xtype:'productspage',
                title:'Products',
                data: [
                        { title: 'Item 1' },
                        { title: 'Item 2' },
                        { title: 'Item 3' },
                        { title: 'Item 4' }
                ],
                itemTpl:'{title}'
            }
        ]
    },

    initialize: function() {
        console.log('Main view initialize');
    }

});

ビュー/Products.js

Ext.define('SenchaTest.view.Products', {
    extend: 'Ext.List',
    xtype: 'productspage',

    initialize: function() {
        console.log('Products view initialize');
    },

});

コントローラー/Main.js

Ext.define('SenchaTest.controller.Main',{
    extend: 'Ext.app.Controller',
    config:{
        views:['Main', 'Products'],
    },

    launch: function() {
        console.log('Main Controller launch');
    },

    init: function() {
        console.log('Main Controller init');
    }
});

これが私のコンソールに表示されるものです:

Main Controller init 
Products view initialize 
Main view initialize 
Main Controller launch 

したがって、ビューとコントローラーが開始されます。しかし、私の製品リストには何も表示されません。リストコンポーネントをドラッグするとスクロールバーが表示されるため、リストコンポーネントがロードされているようです。

奇妙なことに、xtype: 'productspage' を xtype:'list' に変更すると .... 動作します .... しかし、私の製品ビューは Ext.List を拡張します ... 同じではありませんか?

4

3 に答える 3

0

すべての構成(タイトル、データ、itemTpl)をproductsPage定義に入れてみましょう。

于 2012-06-24T05:56:31.937 に答える
0

メインビューにレイアウトを設定してみてください

config: {
    fullscreen: true,
    layout:'fit', <---------- the item is gonna fit the screen
    items:[
        {
            xtype:'productspage',
            title:'Products',
            data: [
                    { title: 'Item 1' },
                    { title: 'Item 2' },
                    { title: 'Item 3' },
                    { title: 'Item 4' }
            ],
            itemTpl:'{title}'
        }
    ]
}
于 2012-06-23T13:46:22.333 に答える
0

最後に問題が見つかりました..これはすべて、ビュー Products.js の初期化オーバーライドが基本メソッドを呼び出していないためです...

于 2012-06-26T01:49:11.500 に答える