2

これは私の最初のSenchaTouchアプリであり、そのアプリのレイアウト機能の背後にある前提は私が達成したいと思っているものと似ているため、 GeoCongress.usアプリ内のコードに非常に厳密に従っています。

itemtapただし、イベントに応答するListオブジェクトを取得する際に問題が発生します。私の意図は、レベルでitemtapイベントをキャプチャし、オブジェクトがリッスンする独自のカスタムイベントを発生させ、(タップされたアイテムに基づいて)新しいカードを表示するプロセスを処理できるようにすることです。SetsScreenAppApp

まず、SetsScreenオブジェクト(少なくともその関連部分):

DataSets.views.SetsScreen = Ext.extend(Ext.Panel, {
    cls: 'sets-screen',
    layout: 'card',

    initComponent: function() { 
        // Build the main content list and add it to the main scren
        this.setsList = new DataSets.views.SetsList({
            scroll: false
        });
        this.setsList.on('itemtap', this.onListItemTap, this);

        this.main = new Ext.Container({
            scroll: true,
            items: [this.setsList]
        });

        this.items = [this.main];
        DataSets.views.SetsScreen.superclass.initComponent.call(this);
    },

    onListItemTap: function(dv, index, item, e) {
        alert('Test');
    }
});

これが私のSetsListオブジェクトです(ここでは本当に素晴らしいものは何もありません):

DataSets.views.SetsList = Ext.extend(Ext.List, {
    itemSelector: '.sets-list-item',
    singleSelect: true,

    initComponent: function() {
        this.store = DataSets.stores.Sets;
        this.itemTpl = Ext.XTemplate.from('sets-list');

        DataSets.views.SetsList.superclass.initComponent.call(this);
    }
});

そして、SetsオブジェクトはクイックデータモデルとExt.data.Storeにすぎません。

Ext.regModel('Sets', {
    idProperty: 'id',
    fields: [
        'title',
        'last_updated',
        'current_value'
    ]
});

DataSets.stores.Sets = new Ext.data.Store({
    model: 'Sets',
    data: [
        {id: 0, title: 'Weight', last_updated: new Date('11/28/2010 00:00:00 AM GMT-0600'), current_value: 145},
        {id: 1, title: 'Cups of Coffee', last_updated: new Date('11/28/2010 07:00:00 AM GMT-0600'), current_value: 1}
    ]
});
4

2 に答える 2

1

ああ、どうやってこの答えに出くわしたのかわからない。これがうまくいかないのは、非常にあいまいなタイプミスだけだった。

Ext.List()そのプロパティを使用してitemSelector、「タップ」に適した要素を判別します。私itemSelectorはに設定されまし.sets-list-itemたが、テンプレートにはがありました<div class="set-list-item">。テンプレートを修正し、itemtap期待どおりに起動しています。

于 2010-11-30T02:44:20.187 に答える
0

1.0リリースで一部のAPIが変更され、古いスクリーンキャストが同期していないため、更新されたスクリーンキャストを確認する必要がある場合があります。

于 2010-11-30T01:30:53.443 に答える