0

view別のボタンがクリックされたときに作成したをレンダリングしたいview

これが私のコントローラーコードです。MVC architecture

Ext.define('demo.controller.LoginController' , {

    extend: 'Ext.app.Controller',

    config: { 

        refs:{

                loginAction: 'button[action=login]'

        },
        control:{

                loginAction: {

                    tap:'loginProcess'
                }
        }


    },
    loginProcess:function(button,e,opts){


         // Render View here


    }


});

検索して出くわしましたが、機能getMainView().push()Ext.ViewPoart.add()ていません。MVC パターンによると、コントローラーからこのビューをどのように呼び出す必要がありますか?

編集

のコードprofilecontainer

Ext.define('demo.view.ProfileContainer',{


            extend:'Ext.Panel',
            xtype:'profilecontainer',

             requires: [
        'Ext.Label'
    ],

             config: {

                items:[{
                            xtype:'label',
                            html:'hi'
                }]

            }


});
4

1 に答える 1

1

正しく設定すれば、試した両方の方法が機能するはずです。

まず、getMainView().push(newView)が の場合に機能mainViewExt.navigation.Viewます。このメソッドのドキュメントを参照してください: http://docs.sencha.com/touch/2.2.1/#!/api/Ext.navigation.View-method-push

Ext.Viewport.setActiveItem(newView)タイプミスがないことを前提として、 を使用することもできます (投稿には と書かれていますViewPoart)。(Ext.Viewport.addパネルをビューポートに追加しますが、レイアウトでアクティブなカードとして設定しません)

これらのいずれも機能していない場合は、コントローラーを正しく構成していない可能性があります。その場合は、loginProcessメソッドが呼び出されていることを確認してください。そうでない場合、セレクタbutton[action=login]は正しくありません。

于 2013-07-25T17:14:21.657 に答える