是否有内置方法来获取dojo / store中的所有记录(特别是dojo / MemoryStore)?类似的东西:
store.query('*');
答案 0 :(得分:3)
解决方案很简单。调用Store实例的查询方法。
store.query();
这是dojo / store / util / SimpleQueryEngine的源代码。版本Dojo 1.8。 如您所见,如果查询 未定义,它将始终返回 True 。
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 :(得分:1)
看来答案非常简单。您只需直接访问数据属性。
var allData = store.data;
这适用于MemoryStores。我不知道它是否适用于需要远程加载数据的商店。
答案 2 :(得分:0)
是肯定的。 PLS。使用以下URL: