我有一个从Sencha Touch中的JSON数据生成的List。实质上,该列表是从Data Store对象生成的,并充当联系人列表。我想知道如何添加功能,以便当用户点击其中一个列表项时,Sencha Touch中会显示一个操作表,提供许多操作(例如“呼叫”,“发送消息”和“删除” “)。
这是我用来生成ListvIew的代码:
var listView = new Ext.List({
store: friendStore,
itemTpl: '{forename} {surname}<br />{phoneNumber}',
grouped: true,
indexBar: true
});
我知道我可以使用on
参数,但这会将tap
事件附加到List,而不是每个项目。显示的操作表将包含一些链接以及tel://
,因此它也需要是动态的(因为要调用的电话号码也存储在密钥{phoneNumber}
希望有道理......
答案 0 :(得分:1)
ListView有一个你应该听的itemtap事件。来自文档:
itemtap : ( Ext.DataView view, Number index, Ext.Element item, Ext.EventObject e )
要获取与被点击项对应的记录,只需执行view.getStore()。getAt(index)。然后在您的事件处理程序中,根据记录中的数据重新创建ActionSheet并显示它。
同时将侦听器附加到列表比附加到每个单独的项目更有效。
答案 1 :(得分:0)
这不是一个很好的答案,但我会查看DataView,它是List的父级。
它有一个名为itemSelector的属性,您可以使用它来指定列表条目的子部分。如果使用itemSelector,还必须提供tpl属性。