如何从Dojo / Store中检索所有记录?

时间:2012-10-21 20:47:37

标签: javascript dojo

是否有内置方法来获取dojo / store中的所有记录(特别是dojo / MemoryStore)?类似的东西:

store.query('*');

3 个答案:

答案 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:

http://javaexperience.com/dojo-search-store-items/