AppViewerでTableViewを表示する単純なビューを作成しました。また、このテーブルにEventListenerを追加しました。このテーブルの行をユーザがクリックすると、このテーブルを他の(詳細)行で拡張することができます。変数をAlloyコントローラに追加し、ユーザーがTableViewをクリックしたときにそれを使用する方法
これは機能しますが、この詳細行を削除することはできません。
Siの、これはコードです:
$.table.addEventListener("click", function(e){
if(e.rowData.ignore){//empty row click
console.log("Ignored");
return;//do nothing
}
//RECUPERO LA RIGA CHE HO CLICCATO
var index = parseInt(e.index);//e callback is String, parse to int
//VERIFICO SE QUESTA RIGA HA SOTTO RIGHE
if(map[index] != null){
//SIGNIFICA CHE QUESTA RIGA HA SOTTO RIGHE
var newSubRow = Alloy.createController('familyHistory_row_children_header',{
age:L(lang+"age"),
diagnosi:L(lang+"diagnosis"),
date_start:L(lang+"start_date"),
date_end:L(lang+"end_date")
}).getView();
//CREO LA TESTATA DELLA SOTTO TABELLA
$.table.insertRowAfter(index, newSubRow);
arrayItems.forEach(function (item, i, array) {
var subItem = Alloy.createController('familyHistory_row_children',{
age:item.age,
diagnosi:item.diagnosi,
date_start:item.dateStart,
date_end:item.dateEnd
}).getView();
$.table.insertRowAfter(1+index+i, subItem);
});
}
});
familyHistory_row_children_header.js
var args = arguments[0] || {};
$.age.text = args.age;
$.diagnosi.text = args.diagnosi;
$.date_start.text = args.date_start;
$.date_end.text = args.date_end;
familyHistory_row_children.js
var args = arguments[0] || {};
$.age.text = args.age;
$.diagnosi.text = args.diagnosi;
$.date_start.text = args.date_start;
$.date_end.text = args.date_end;
パーソナルプラグインを追加することが可能である場合、私は思いますr変数familyHistory_row_childre_header.js詳細行を挿入すると、このパラメータをtrue(たとえば)に設定し、parameteri = trueの場合にリスナーに実装して詳細行を削除します。
これは可能ですか?