0

Sencha Touch 2 で構築したい非常にシンプルなモバイルアプリがあります。ExtJ についてはかなりの経験がありますが、MVC アーキテクチャについてはあまり詳しくありません。私が達成したいのは:

  • まず、アプリの機能間を移動するために使用されるツールバーといくつかのアイコンが中央にレンダリングされたメイン画面。
  • アイコンの 1 つをクリックすると、スクロール可能なリストのある画面に切り替わります。

私が苦労しているのは、ビューとコントローラーを定義する適切な場所です。たとえば、メイン画面でコントローラーを使用する必要がありますか? ビューポートを手動で作成する必要がありますか?

私が今持っているものは、ツールバー以外には何もレンダリングされていません:

app.js

Ext.application({
    name: 'SG',

    views: [
        'Main',
        'MainScreen'
    ],

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

        // Initialize the main view
        Ext.Viewport.add(Ext.create('SG.view.Main'));
    }
})

Main.js

Ext.define('SG.view.Main', {
    extend: 'Ext.Container',
    requires: [
        'Ext.TitleBar',
        'ShopGun.view.MainScreen'
    ],
    config: {
        layout : 'fit',

        items: [
            {
                title: 'Welcome',
                iconCls: 'home',
                position: 'top',
                scrollable: true,

                items: [
                    {
                        docked: 'top',
                        xtype: 'titlebar',
                        title: 'SG Alpha 1'
                    }
                    Ext.create('SG.view.MainScreen', {
                        docked: 'bottom'
                    })
                ]
            }
        ]
    }
});

MainScreen.js

Ext.define('SG.view.MainScreen', {
    extend: 'Ext.Container',
    xtype: 'mainScreen',

    initialize : function(){

        Ext.define("MenuIcon", {
            extend: "Ext.data.Model",
            config: {
                fields: [
                    {name: "Name", type: "string"},
                    {name: "Icon",  type: "string"}
                ]
            }
        });

        this.store = Ext.create('Ext.data.Store', {
            model: 'MenuIcon',
            data: [
                {
                    Name: "A",
                    Icon: "a.png"
                },
                {
                    Name: "B",
                    Icon: "b.png"
                }
            ]
        });

        this.html = 'foo';

        this.callParent(arguments);
    }
});

そして最後に、私が取得したいもののイメージ:

ここに画像の説明を入力


編集:

Senchafiddle のデモ: http://www.senchafiddle.com/#jSqtV (まったくレンダリングされませんが、エラーは発生しません)。

4

0 に答える 0