2

Я внедрил список аккордеона, перейдя по этой ссылке. http://docs.kawanoshinobu.com/touch/#!/api/Ext.ux.AccordionList. Аккордеон работает нормально, без каких-либо проблем. Мне нужно искать текст только в заголовках списка аккордеона. После поиска, Как только появились заголовки аккордеона. Должно быть, я могу расширять и сворачивать эти заголовки, чтобы видеть дочерние элементы заголовка. Я применил фильтр хранилища, он отфильтрован и отобразил отфильтрованные данные (см. Изображение). развернуть и свернуть происходит на правой и правой кнопке заголовка. но не может видеть данные дочерних узлов конкретного заголовка в режиме расширения. дочерние узлы доступны из этого заголовка (см. в console.log()). Есть ли другой способ применить фильтр для списка аккордеона/дерева? Большое спасибо. Спасибо. в самой ссылке, я применил фильтр хранилища, это поведение так же, как и то, что я столкнулся с проблемой в моем коде. В приведенном ниже коде я передаю текст фильтра «в». он фильтруется сегодня, очень приятно. , но при нажатии на раскрытие дочерних узлов не видно.После того, как фильтр хранилища расширяется и сворачивается, не отображается дочерние данные в AccordionList?

Before store filter After store filter код здесь:

var data = { 
    "items" : [{ 
      "text" : "Today", 
      "items" : [{ 
         "text" : "Eat", 
         "leaf" : true 
        }, { 
         "text" : "Sleep", 
         "leaf" : true 
        }, { 
         "text" : "Drinking", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "Tomorrow", 
      "items" : [{ 
         "text" : "Watch TV", 
         "leaf" : true 
        }, { 
         "text" : "Watch Video", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "This week", 
      "items" : [{ 
         "text" : "Shopping", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "Later", 
      "items" : [{ 
         "text" : "Eat", 
         "leaf" : true 
        }, { 
         "text" : "Sleep", 
         "leaf" : true 
        }, { 
         "text" : "Drinking", 
         "leaf" : true 
        }] 
     }] 
}; 

Ext.define('Task', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [{ 
      name: 'text', 
      type: 'string' 
     }] 
    } 
}); 

var store = Ext.create('Ext.data.TreeStore', { 
    model: 'Task', 
    defaultRootProperty: 'items', 
    root: data 
});  


store.filter([{ 
        property: "text", 
        value: "to", 
        anyMatch: true    
       }]); 


var accordionList = Ext.create('Ext.ux.AccordionList', { 
    fullscreen: true, 
    store: store 
}); 

ответ

-1

Я achived. store.filter, фильтруйте текст красиво, но если у него есть дочерние узлы, он также не будет отображаться. потому что мы искали какой-то конкретный текст в магазине. после того, как фильтр отображает только текст фильтра. Я пошел другим путем. он работает очень красиво в соответствии с моим требованием. Я звоню в веб-службу store.load(). В магазине поиск введенного текста. если введенный текст недоступен на уровне родителя, удаление этого хранилища определенной формы. После итерации конечный магазин присваивает список аккордеона. Список аккордеона показывает соответствующие текстовые данные поиска. ура :). ниже - код. Спасибо.

store.getProxy().setUrl('resources/Json/TestsStore.json');   
      store.load({ 
       scope: this, 
       callback: function(records, operation, success) { 
        if (success) { 
          if(searchfield !=="") {         
           if(store.data.items.length !==0){ 
            var length = store.data.items.length; 
            for(var j=length; j--;) { 
            if(store.data.items[j].data.name.search(new RegExp(searchfield, "i")) ===-1){ 
             store.data.items[j].remove(); 
            } 
           } 
           } 
          } 
         if(store.data.items.length ===0){ 
          eGMonitorApp.util.Utility.showAlert('Searched text not available.','Tests'); 
         }      
         this.getAccordionListRef().setStore(store); 
        } 
       } 
      }); 
+0

Что такое "имя", если (store.data.items [J] .data.name.search (новый RegExp (searchfield, "я")) === - 1) {store.data. пункты [J] .remove(); } оценят ответ ур. –

 Смежные вопросы

  • Нет связанных вопросов^_^