在sencha touch 2模板中点击/点击调用成员函数

时间:2012-10-23 11:28:16

标签: sencha-touch-2

我对sencha触摸很新,我已经做了很多研究和教程来学习基础知识但是现在我正在尝试我遇到了一个我无法弄清楚的问题。

我有一个基本的DataList,它从一个显示在xtemplate中的商店中获取数据。

在这个模板中,我创建了一个成员函数,该函数要求将商店字段数据解析为参数。

我想制作一个缩略图(来自商店的信息源)在点击/点按时执行会员功能。

我在文档中找不到关于此的任何信息,有没有人知道最好的方法呢?

这是一个代码示例(从文档中提取,因为我现在无法访问我的实际代码)。

var tpl = new Ext.XTemplate(
'<p>Name: {name}</p>'
{
    tapFunction: function(name){
       alert(name);
    }
}
);
tpl.overwrite(panel.body, data);

我想让段落可点击,然后执行tapFunction()成员函数并传递{name}变量。

像onclick =“{[this.tapFunction(values.name)]}”这样的东西似乎不起作用。

1 个答案:

答案 0 :(得分:5)

我认为一旦呈现视图就会执行模板中的函数,所以我认为这不是正确的解决方案。

我要做的是:

为您的&lt;添加一个唯一的类p>代码

tpl : '<p class="my-p-tag">{name}</p>'

检测列表中的itemtap事件

在数据视图控制器中,您可以在列表中添加tap事件侦听器。

refs: {
  myList: 'WHATEVER_REFERENCE_MATCHES_YOUR_LIST'
},
control: {
  myList: {
    itemtap: 'listItemTap'
  }
}

检查水龙头的目标是否为&lt; p>代码

为此,请执行listItemTap功能,如下所示:

listItemTap: function(list,index,target,record,e){
  var node = e.target;
  if (node.className && node.className.indexOf('my-p-tag') > -1) {
    console.log(record.get('name'));
  }
}

希望这有帮助