已设置的表属性显示为undefined

时间:2013-07-11 14:15:04

标签: javascript properties titanium

我正在将以下项目推送到数组:

data.push({
            title: items.item(i).getElementsByTagName("title").item(0).text,
            leftImage: "News Story.png",
            dataToPass: items.item(i).getElementsByTagName("content:encoded").item(0).text,

            className: "TableRow", 
            hasChild: true, 
            js:"external.js"
        });

我将此数组设置为表的数据源。

table.data = data;

这很好用,表格显示为欲望。但是,当我点击一行表时,我会有一个事件监听器。在那里我有一个条件测试它是否有一个js属性,如果它有一个dataToPass属性,并且这返回false,有人可以解释这个吗?

table.addEventListener("click", function (e){

if(e.source.title){
            alert("has title");
        }

if (e.source.dataToPass){
            alert ("got data");
        }
if (e.source.js){
            alert("has js");
        }

我收到了有标题的警报但没有收到数据。为什么呢?

1 个答案:

答案 0 :(得分:1)

当您从JSON对象创建表行时,您必须访问rowData对象中的数据,请尝试以下操作:

table.addEventListener("click", function (e){
    if(e.source.title){
            alert("has title");
    }

    if (e.rowData.dataToPass){
            alert ("got data");
    }
});

API.

中更详细地记录了这一点