2

私はチタンとバックボーンを初めて使用します。私は以前に JS フレームワークを使用したことがありますが (Knockout.js が最もよく知られています)、Backbone と、Alloy での動作方法には慣れが必要です。

私は非常に単純なことをしたいと思っています。TableView にバインドされたコレクションがあります。私がしたいのは、クリックされたときに特定の行に関連付けられたデータを取得することだけです。

些細なことですが、すべてのドキュメントは、すでに Alloy の使用方法を知っていることを前提としているようです!

モデル

exports.definition = {
    config: {
        columns: {
            subject: "text",
            convo_id: "integer",
            created: "text",
            modified: "text"
        },
...

意見

<Alloy>
    <Window id="convosView" title="Conversations">
        <ScrollView id="convoScrollList">
            <TableView id="convoList" dataCollection="convos">
                <TableViewRow onClick="rowClick">
                    <View class="convoRow">
                        <Label class="convoTitle" text="{subject}" />
                        <Label class="convoDate" text="{created}" />
                        <View class="rowArrow" />
                    </View>
                </TableViewRow>
            </TableView>
        </ScrollView>
    </Window>
</Alloy>

コントローラ

var conversations = Alloy.Collections.convos;
conversations.fetch();

function rowClick(e) {
    alert(e.created);
};    
4

2 に答える 2

1

私が作成した ti fugutive アプリのサンプル ポートを見てください。基本的な考え方は、モデルの ID をテーブル行に保存し、クリックするとモデルを取得することです。

$.table.addEventListener('click', function(_e) {
    var detailController = Alloy.createController('FugitiveDetail', {
        parentTab : $.fugitiveTab,
        data : fugitiveCollection.get(_e.rowData.model)
    });
    $.fugitiveTab.open(detailController.getView());
});

表の行は次のように構成されています

<Alloy>
    <!-- have to use alloy_id since I did not specify an id in the schema -->
    <TableViewRow id="row" dataId="" model="{alloy_id}">
        <View class="vgroup">
            <Label id="name" text="{name}"/>
            <Label id="address" text="{address}"/>
        </View>
    </TableViewRow>
</Alloy>
于 2013-08-03T22:55:12.507 に答える
0

このようなことをしてください

function rowClick(e) {
    alert(e.rowData);
}; 

次のようにインデックスを取得することもできます

function rowClick(e) {
        alert(e.index);
    };

ありがとう

于 2013-08-02T12:46:04.420 に答える