我是Titanium和Backbone的新手。我以前曾经使用过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);
};
答案 0 :(得分:1)
看一下我创建的ti fugutive app的示例端口。基本思想是将模型的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>
答案 1 :(得分:0)
做这样的事情
function rowClick(e) {
alert(e.rowData);
};
您还可以获得如下索引
function rowClick(e) {
alert(e.index);
};
由于