Filter 存储筛选器展开和折叠后,是否在AccordionList中未显示子数据?

Filter 存储筛选器展开和折叠后,是否在AccordionList中未显示子数据?,filter,sencha-touch,sencha-touch-2,accordion,sencha-touch-2.1,Filter,Sencha Touch,Sencha Touch 2,Accordion,Sencha Touch 2.1,我已经通过引用这个链接实现了手风琴列表。手风琴工作正常,没有任何问题。我只需要搜索手风琴列表标题上的文本。在搜索之后,如果得到手风琴标题,则返回一次。应该是,我能够展开和折叠那些标题,需要查看标题子项。我已经应用了store filter,它是经过过滤的store,并显示过滤后的数据(参见图)。标题右侧正在展开和折叠,而向下图标正在更改。但无法在展开模式下查看特定标头的子节点数据。该头的子节点可用(请参见console.log())是否有其他方法可以为手风琴列表/树存储应用过滤器?非常感谢。谢谢

我已经通过引用这个链接实现了手风琴列表。手风琴工作正常,没有任何问题。我只需要搜索手风琴列表标题上的文本。在搜索之后,如果得到手风琴标题,则返回一次。应该是,我能够展开和折叠那些标题,需要查看标题子项。我已经应用了store filter,它是经过过滤的store,并显示过滤后的数据(参见图)。标题右侧正在展开和折叠,而向下图标正在更改。但无法在展开模式下查看特定标头的子节点数据。该头的子节点可用(请参见console.log())是否有其他方法可以为手风琴列表/树存储应用过滤器?非常感谢。谢谢。在上面的链接中,我应用了商店过滤器,其行为与我在代码中面临的问题相同。在下面的代码中,我将过滤器文本“传递到”。今天是过滤的,非常好但单击展开子节点时不可见。

代码在这里:

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
 });

我已经成功了。函数,可以很好地过滤文本,但如果文本有子节点,则不会显示。因为我们在商店里搜索了一些特定的文本。“后过滤器”仅显示那些过滤器文本。我走了另一条路。按照我的要求,它工作得很好。我正在调用web service store.load()店内搜索输入的文本。如果输入的文本在父级不可用,则从存储中删除该特定项。迭代后,将最终存储分配给accordion列表。accordion列表显示相关的搜索文本数据。干杯:)。下面是代码。多谢各位

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);
                    }
                }
            });

我已经成功了。函数,可以很好地过滤文本,但如果文本有子节点,则不会显示。因为我们在商店里搜索了一些特定的文本。“后过滤器”仅显示那些过滤器文本。我走了另一条路。按照我的要求,它工作得很好。我正在调用web service store.load()店内搜索输入的文本。如果输入的文本在父级不可用,则从存储中删除该特定项。迭代后,将最终存储分配给accordion列表。accordion列表显示相关的搜索文本数据。干杯:)。下面是代码。多谢各位

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);
                    }
                }
            });
if(store.data.items[j].data.name.search(new RegExp(searchfield,“i”)==-1{store.data.items[j].remove();}将感谢您的回复。if(store.data.items[j].data.name.search(new RegExp(searchfield,“i”)==-1){store.data.items[j].remove();}将感谢您的回复。