// Controller.js
$.tblRow_CurrentRow = [];
var currentList = [
{plan:' Plan1',date:'18 Feb 2014',tier:'one'},
{plan:'Plan2',date:'18 Dec 2013',tier:'two'},
{plan:'Plan3',date:'20 Feb 2014',tier:'three'},
var data = [];
for(var i=0;i < currentList.length ;i++){
if(i%2 == 0){
$.tblRow_CurrentRow[i].backgroundColor = "#FFFFFF";
}
else{
$.tblRow_CurrentRow[i].backgroundColor = "#ABC012";
}
// Set text data to the label
$.lbl_Plan.text = currentList[i].plan;
$.lbl_Date.text = currentList[i].date;
$.lbl_Tier.text = currentList[i].tier;
// Adding label to the TableRow!
$.tblRow_CurrentRow[i].add($.lbl_Plan);
$.tblRow_CurrentRow[i].add($.lbl_Date);
$.tblRow_CurrentRow[i].add($.lbl_Tier);
data.push($.tblRow_CurrentRow[i]);
}
$.tbl_TabeleView.data = data;
// Controller.xml
<TableView id = "tbl_TabeleView" >
<TableViewRow id= "tblRow_CurrentRow">
<Label id = "lbl_Plan"></Label>
<Label id = "lbl_Date"></Label>
<Label id = "lbl_Tier"></Label>
</TableViewRow>
</TableView>
将dataList添加到合金钛中的tableviewRow的问题。
错误消息 message =“'undefined'不是对象(评估'$ .tblRow_CurrentRow [i] .add')”;
答案 0 :(得分:1)
在您的视图中,您将$ .tblRow_CurrentRow定义为单个TableViewRow。您不能将其视为控制器中的对象数组。我修改了你的代码以使其工作,所以你可以看到它应该如何:
index.js:
$.tblRow_CurrentRow = [];
var currentList = [
{plan:' Plan1',date:'18 Feb 2014',tier:'one'},
{plan:'Plan2',date:'18 Dec 2013',tier:'two'},
{plan:'Plan3',date:'20 Feb 2014',tier:'three'},
];
var data = [];
for (var i=0; i < currentList.length; i++){
$.tblRow_CurrentRow[i] = $.UI.create('TableViewRow', {
backgroundColor: (i % 2 === 0 ? '#FFFFFF' : '#ABC012'),
layout: 'vertical',
});
// Set text data to the label
$.tblRow_CurrentRow[i].add(
$.UI.create('Label', { text: currentList[i].plan } )
);
$.tblRow_CurrentRow[i].add(
$.UI.create('Label', { text: currentList[i].date } )
);
$.tblRow_CurrentRow[i].add(
$.UI.create('Label', { text: currentList[i].tier } )
);
data.push($.tblRow_CurrentRow[i]);
}
$.tbl_TabeleView.data = data;
$.getView().open();
INDEX.XML:
<Alloy>
<Window>
<TableView id="tbl_TabeleView" />
</Window>
</Alloy>
基本上查看tempalte只包含简单的Window和空TableView,我们将添加行。在你的for循环中,我正在创建设置不同背景的TableViewRow对象,然后添加你需要的所有3个标签。
垂直布局让我们可以很好地一个接一个地显示标签 方法$ .UI.create('TableViewRow')是Ti.UI.createTableViewRow();的更好版本。如果它让您感到困惑,可以替换它们。