2016-06-20 6 views
0

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の場合にリスナーに実装して詳細行を削除します。

これは可能ですか?

答えて

0

は、私はあなたが望むものを正確に理解していないが、あなたは、行のトップレベルに

index.js

$.table.hideRowChildren = function(start,end) { 

    //remove or hide the row 
}; 

familyHistory_row_childre_headerを引数、または設定した機能やプロパティなどのイベントを渡すことができます。 JSあなたがそのfamilyHistory_row_childrenを表示するには、familyHistory_row_children_headerをクリックすると、あなたがこれを行うことができ

$.row.myHeader = false; 

$.row.setMyHeader = function(val) { 

    $.row.myHeader = val; 

    if(val) args.hideRowChildren(args.myFirstChildrenRow,args.myLastChildrenRow); 
}; 

$.table.addEventListener('click',function(e) { 

    e.row.myHeader = true; 

    //or 

    e.row.setMyHeader(true); 
}); 
関連する問題