2012-10-21 26 views

回答

3

解决方案很简单。调用Store实例的查询方法。

store.query(); 

以下是dojo/store/util/SimpleQueryEngine的源代码。版本Dojo 1.8。 如您所见,它总是会返回如果查询undefined

switch(typeof query){ 
    default: 
     ... 

    case "object": case "undefined": 
     var queryObject = query; 
     query = function(object){ 
      for(var key in queryObject){ 
       var required = queryObject[key]; 
       if(required && required.test){ 
        // an object can provide a test method, which makes it work with regex 
        if(!required.test(object[key], object)){ 
         return false; 
        } 
       }else if(required != object[key]){ 
        return false; 
       } 
      } 
      return true; 
     }; 
     break; 
    case "string": 
     ... 

    case "function": 
     ... 
} 
function execute(array){ 
    // execute the whole query, first we filter 
    var results = arrayUtil.filter(array, query); 

    ... 
    ... 

    return results; 
} 

如果文档混淆或丢失,有必要阅读dojo源代码。希望答案会有帮助。 :)

1

看来,答案是非常简单的。您只需直接访问数据属性。

var allData = store.data; 

这适用于MemoryStores。我不知道它是否适用于需要远程加载数据的商店。

相关问题