0

私はリストを持っています:

Ext.define('my.view.ProgramList', {
  extend: 'Ext.dataview.List',
  xtype: 'programlist',
  ...
}

このリストを2つのナビゲーションビューの開始点にしたいと思います。

Ext.define("my.view.ProgramNavigationView", {
  extend: 'Ext.navigation.View',
  xtype: 'programnavigationview',
  ...
  items: [{
    xtype: 'programlist',
    itemId: 'programlist'
  }]
}

Ext.define("my.view.FacebookNavigationView", {
  extend: 'Ext.navigation.View',
  xtype: 'facebooknavigationview',
  ...
  items: [{
    xtype: 'programlist',
    itemId: 'programlist'
  }]
}

質問:コントローラーでタップイベントを処理し、2つを別々に処理するにはどうすればよいですか?私のコントローラーには次のものがあります。

refs: {
    programlist: 'programlist',
    facebooknavigationview: 'facebooknavigationview',
    programnavigationview: 'programnavigationview', ...
},

私はこれを試しました:

control: {
  programlist: {
    initialize: 'initProgramData'
  },
  facebooknavigationview: {
    itemtap: 'showFacebookGroup'
  },
  programnavigationview: {
    itemtap: 'showProgramData'
  },

itemtapがバブルし、facebooknavigationviewとprogramnavigationviewで異なる方法で処理できることを期待していますが、そうではありません。アイテムタップをプログラムリストに入れると起動しますが、2つのナビゲーションビューの違いがわかりません。階層を検索できるかどうかはわかりませんが、それはちょっと醜いようです。私は何が欠けていますか?

4

1 に答える 1

1

たとえば、次のビューがある場合は、親を使用してタップがどこから来ているかを区別するのに役立つ参照を追加できます。

Ext.define("my.view.ProgramNavigationView", {
  extend: 'Ext.navigation.View',
  xtype: 'programnavigationview',
  ...
  items: [{
    xtype: 'programlist',
    itemId: 'programlist'
  }]
}

Ext.define("my.view.FacebookNavigationView", {
  extend: 'Ext.navigation.View',
  xtype: 'facebooknavigationview',
  ...
  items: [{
    xtype: 'programlist',
    itemId: 'programlist'
  }]
}

次の参照を使用できます。

refs: {
    programlist: 'programlist',
    facebooknavigationview: 'facebooknavigationview programlist',
    programnavigationview: 'programnavigationview programlist', ...
},
control: {
  programlist: {
    initialize: 'initProgramData'
  },
  facebooknavigationview: {
    itemtap: 'showFacebookGroup'
  },
  programnavigationview: {
    itemtap: 'showProgramData'
  },

親ビュー内に表示されるアイテムのタップがリッスンするようになりました。

于 2013-03-25T06:34:51.903 に答える