2

次のコードでフォームビューをプッシュしているユーザーがアイテムをクリックすると、リストアイテムにハンドラーが表示されたリストが表示されます。

list.up('navigationview').push({
xtype: 'xEditAddFormPanel',
title: 'Edit task',
data: record.getData()
});

最初のクリックで動作し、ナビゲーションにxEditAddFormPanel..が表示されます。

しかし、次に、戻るボタンをクリックして(そしてリスト画面に戻って)、リスト項目をもう一度押した後(上記のコードを再びトリガーするもの)-今は何も起こりません。

フォーム画面を再度表示するにはどうすればよいですか?

4

2 に答える 2

1

私は同じ問題を抱えていましたが、その理由は、ビューをナビゲーターに2回押したときにリスナーが失われたためです。なんで?ビューをナビゲーターにプッシュするたびに、古いビューが破棄され、すべてのリスナーが墓場に運ばれるためです...

この問題を回避するために、プッシュしたい新しいビューを作成するたびに、イベントを手動でバインドしました。

onXButtonTap: function () {
    var view = Ext.create('MyApp.view.XEntryView');
    //Bind the events you need manually every time you push.
    view.on('myEvent', this.onSubmitNewX);
    this.getXMainView().push(view);
}
于 2013-07-08T23:37:51.887 に答える
0

多くの場合、Sencha ではコンポーネントを手動で破棄する必要があります。次のようなことをする必要があるかもしれません:

var formPanel = Ext.create('YourApp.view.EditAddFormPanel', {
    title: 'Edit task',
    data: record.getData()
});

formPanel.onAfter('erased', function(){
    this.destroy();
}, this);

list.up('navigationview').push(formPanel);
于 2013-01-05T03:09:47.980 に答える