-1

ビューが表示されるたびに関数を呼び出そうとしています。ただし、最初に呼び出されるだけで、その後は呼び出されません。iOSのviewWillAppearのようなイベント機能はありますか?「初期化」イベント関数を使用していますが、一度だけ呼び出されます。助けてください。

意見:

Ext.define('Abc.view.abc', {
 extend: 'Ext.List',
 xtype: 'runningList',
 requires: ['Abc.store.InstancesStore','Ext.data.proxy.JsonP',],

config: {
title: 'Running',
id: 'instanceList',/*
itemTpl: '<div class="serached_listview">'+ 
        '<div>{key}  {key} </div>' +
        '<div><b>{key}</b> </div>' +
        '<div>  {key}</div>' +
        '</div>'
        ,*/
        store: 'RunningInstanceStore',
           listeners: [{
                fn: 'initialize',
                 event: 'initialize'
            }
    ]
  }
});

コントローラ:

 Ext.define("Abc.controller.InstancesController", {
extend: 'Ext.app.Controller',
requires: [ 'Ext.data.JsonP','Ext.device.Connection'],
config: {
    refs: { 
        main: 'mainpanel',
                     Instances: '#instanceList',
        ListView: 'runningList'
    },
    control: {
        Instances: {
            initialize: 'initializePanel',
            activate:'initializePanel'
        },
        "runningInstancesList": {
            disclose: 'listViewAccessoryTapped',
            itemtap: 'listViewTapped'
        }
    }
},
listViewAccessoryTapped:  function(view, index, item, e) {
    if(Ext.device.Connection.isOnline())
        console.log('Internet connection is available.');
    else
        console.log('Internet connection is not available.');

},
listViewTapped:  function(view, index, item, e) {




},

initializePanel: function() { 
    console.log('Hi');     **////////////////Called only once...**

}
});
4

2 に答える 2

0

(初期化の代わりに) これらのイベント ハンドラーの 1 つが役立つはずです。

ペイント
http://docs.sencha.com/touch/2-1/#!/api/Ext.Component-event-painted

http://docs.sencha.com/touch/2-1/#!/api/Ext.Component-event-show を表示

理想的には、これらのイベントはこのようにコントローラーで処理する必要があります (多くの方法の 1 つ)。

        '#instanceList': {
            show        : 'onListShow'
        }

ただし、代わりに、次のようにリスナーをビューに追加できます。

Ext.define('Abc.view.abc', {
  extend: 'Ext.List',
  xtype: 'runningList',
  requires: ['Abc.store.InstancesStore','Ext.data.proxy.JsonP',],

  config: {
    title: 'Running',
    id: 'instanceList',
    store: 'RunningInstanceStore',
    listeners: {
      show  : function(me, opts){
        // Do whatever you want here
      }
    }
  }
});
于 2013-04-02T13:29:05.473 に答える