2

私はSencha2の初心者で、ボタンがクリックされたときに新しいビューをレンダリングする方法を見つけようとしています。具体的には、ホームと呼ばれるこのビューがあります

Ext.define("Blog.view.Home", {
  extend:'Ext.Panel',
  xtype:'homepanel',


  config:{
    iconCls:"home",
    title:"Home",
    items:[
      {
        defaults:{
          iconMask:true
        },
        xtype:'toolbar',
        title:'Recent Blogs',
        docked:'top',
        items:[
          {
            id:'newBlog',
            xtype:'button',
            iconCls:'add',
            handler:function () {
              //What do I do here?
            }
          }
        ]
      },

      {
        html:"Recent Blogs"
      }
    ]
  }
});

そして、そのボタンをクリックすると、新しいビューをレンダリングしたいと思います。どうしたらいいのかわからない。誰かが私にいくつかのポインタを与えることができますか?これはこれを行うための最良の方法ですか?これをコントローラーに移動する必要がありますか?はいの場合、どのイベントを聞く必要がありますか?

4

2 に答える 2

5

私がそれを行う方法(私も学んでいます)は、ボタンのプロパティ「アクション」を定義することです。次に例を示します。

{
  xtype: 'button'
  action: 'doSomething',
}

コントローラーの制御構成でイベントを処理します。

control: {
  'button[action=doSomething]' : {
     tap: function() {
       getMainView().push(...);
     }
 }

ハンドラーでは、 NavigationViewを使用している場合は新しいビューをプッシュするか、 ViewPortに新しいビューを直接追加できます。

それが役に立てば幸い。

于 2012-04-06T01:53:59.503 に答える
4

Sencha Touch 2(MVCパターンに従う)でこれを行うためのベストプラクティスは、ボタンへの参照を定義し、コントローラーでボタンに制御機能を固定することです。例えば:

refs:{
button_which_renders_a_new_view: '#newBlog' //create a reference to your button

control: {
button_which_renders_a_new_view: 'create_a_new_view'
}

create_a_new_view: {
// do whatever you want here
}

詳細については、これを詳しく見てみましょう:http: //docs.sencha.com/touch/2-0/# !/api/Ext.app.Controller

于 2012-04-06T02:16:37.963 に答える