Как я могу скрыть строки в VirtualRepeater? - PullRequest
1 голос
/ 16 августа 2011

Я использую один VirtualRepeater в Enyo (WebOS 3.0):

{kind: enyo.VirtualRepeater, name: "eventList", onSetupRow: "setupRowWithEvent", onclick: "doListTap", components: [
   {kind: enyo.Item, name:"eventItem", layoutKind: enyo.HFlexLayout, tapHighlight: true, components: [
       /* components of every row: inside a Enyo.Item */       
   ]} 
]}                                 
/* more code */
setupRowWithEvent: function(inSender, inIndex) {
     if (somethingIsTrue) {

         return true;    
     }
 }

Что я хочу сделать, это:

  • , если что-то верно, визуализировать строку
  • если нет, ничего не показывать. Проблема в том, что теперь он показывает пустые строки, а не ничего.Он показывает строки с содержимым и пустые строки, но я не хочу строк.Я не могу вернуть false, или VirtualRepeater остановит рендеринг строк.

1 Ответ

0 голосов
/ 17 августа 2011

Решение, которое я нашел, простое:

{kind: enyo.VirtualRepeater, name: "eventList", onSetupRow: "setupRowWithEvent", onclick: "doListTap", components: [
    {kind: enyo.Item, name:"eventItem", layoutKind: enyo.HFlexLayout, tapHighlight: true, components: [
        /* components of every row: inside a Enyo.Item */       
    ]} 
]}                                 
/* more code */
setupRowWithEvent: function(inSender, inIndex) {
  if (somethingIsTrue) {
      // code to update every row 

  } else {  // we don't want this row to show
      this.$.eventItem.setShowing(false);
  } 
 return true; // if you don't return true, the virtual Repeater stops fetching rows
}
...