未找到ExtJS Store reader.read

时间:2012-06-27 08:32:09

标签: javascript extjs jsonp extjs4.1

我有这家店:

Ext.define("App.store.units.MyStore", {

    extend:'Ext.data.Store',
    requires: "App.model.units.MyModel",

    model: "App.model.units.MyModel",
    id:'myStore',
    pageSize:10,
    proxy: {
        type: 'jsonp',
        url: urls.MyUrl+"/search",
        limitParam: 'undefined',
        startParam: 'offSet',
        pageParam: 'undefined',
        extraParams: {
            searchString: 'a'
        },
        reader: {
            root: 'results.results',
            totalProperty: 'numFound',
            type: 'json'
        }
    }
});

请求有效,我得到了预期的响应。

出于某种原因,现在我在浏览器中看到了这个:

reader.read is not a function

我不明白问题出在哪里,因为昨天一切正常(我知道这听起来如何,但我真的不知道有什么不同)。

任何可能有帮助的建议?

编辑以下是模型的(动态)定义:

function(config){
    try{
        console.log("INIT MODEL");
    Ext.define("App.model.units.MyModel", {
        extend: 'Ext.data.Model',
        fields: config
    });
    } catch(err){
        console.log("Error");
    }
}

此功能在创建商店之前运行,而config对象是array{name: 'value'}项。

我不知道出了什么问题。现在一切似乎都在Firefox中运行良好,但IE8仍然存在该错误(阅读器中带有type:'json'的事件)。我认为读者没有在IE8中实现,但我无法检查它,因为对象没有在其控制台中显示(或者我没有这样做的知识)。为什么不运行相同的javascript代码?

LATER EDIT 出于某种原因,我有时会创建reader。这就是问题。有时它只是一个对象,而不是必需的reader。这也发生在Firefox中。似乎没有任何模式。

3 个答案:

答案 0 :(得分:1)

我有类似的问题。这有助于:

Ext.require('App.model.units.MyModel');
//or any other model you use in your store

放在之前创建商店并且它有效!

答案 1 :(得分:0)

requires config是ExtJS docs中所述的数组:

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.Class-cfg-requires

答案 2 :(得分:0)

删除商店字段时出现此错误。我有这个网格...

<强>格

            columns: [
                {header: "Status", width: 75, sortable: true, dataIndex: 'partystatus'},
                {header: "Name", width: 160, sortable: true, dataIndex: 'partyname'},
                {header: "Fathersname", width: 75, sortable: true, dataIndex: 'fathersname'},
                {header: "Grandfather", width: 75, sortable: true, dataIndex: 'grandfather'},
                {header: "Type", width: 75, sortable: true, dataIndex: 'partytype'}
            ],

以及以下商店:

商品

    fields: [
        {name: 'firstName', type: 'string'},
        {name: 'name', type: 'string'},
        {name: 'age', type: 'int'},
        {name: 'eyeColor', type: 'string'}
    ],

我只是删除了存储字段,认为它们是多余的,但我得到了那个错误。