在sencha touch中存储过滤器(多个项目)

时间:2015-10-13 12:26:10

标签: extjs sencha-touch store

我看到了这个问题,我想更进一步 https://stackoverflow.com/questions/18606212/store-filter-in-sencha-touch#=

首先我对该表进行过滤(到目前为止这是有效的): Table 1

然后我将根据第一个表的过滤器过滤另一个表。 Table 2

结果将是: Table 2 Filter 1 green

或(例如): Table 2 Filter 2 yellow

现在我测试了类似的东西:

TABLEVIEWSTORE1.filter("name", name);

   TABLEVIEWSTORE1.load({callback: function (){
       tableviewstore2.load({callback: function (){

       TABLEVIEWSTORE1.each(function(item){
           tableviewstore2.filterBy(function(record,id){
               return record.get("number") == item.get("number");
           }, this);
       });

        TABLEVIEWSTORE1.load({callback: function (){
            tableviewstore2.load({callback: function (){
                    // DO MORE THINGS
            }});
        }});
           }});

    }});
});

有谁知道它是如何正常工作的?

1 个答案:

答案 0 :(得分:2)

首先,我们应该找到第一个过滤商店中的所有唯一数字。 然后,我们应该根据那些唯一的数字数组过滤第二个商店。 我们将使用Ext.Array

var uniqueNumbers= [];       
    TABLEVIEWSTORE1.each(function(item){
             Ext.Array.include(uniqueNumbers,item);
    });
    tableviewstore2.filterBy(function(record){
                   return Ext.Array.contains(uniqueNumbers,record.get("number"));
               });