0

我希望使用 extjs 加载一个 json 文件。以前我在 jquery 库的帮助下加载我的 json 文件,如下所示:

Ext.define('app.store.Students', {
    extend: 'Ext.data.Store',
    model: 'app.model.Student',
    storeId: 'StudentData',
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'data/users.json',
        success: function(resp) {
        console.log(resp.responseText);
        },
        reader: {
            type: 'json',
            root: 'student1',
            model: 'app.model.Student',
            successProperty: 'success'
        }
    }
});

但现在我想使用 ExtJs 加载我的 json 文件。我尝试了以下代码:

Ext.define('app.store.Students', {
    extend: 'Ext.data.Store',
    model: 'app.model.Student',
    storeId: 'StudentData',
    autoLoad: true,
});
Ext.Ajax.request({
    url: 'data/users.json',
    //method: 'GET',
    success: function(response){
        var text = response.responseText;
        alert('1')
        console.log(this.url);
        // process server response here
    }
});

但它说'未捕获的类型错误:无法调用未定义的方法'indexOf'。在 firebug 中检查时,下面给出的 url 在 ext-all-debug.js 中未定义。

    urlAppend : function(url, string) {
    if (!Ext.isEmpty(string)) {
    return url + (url.indexOf('?') === -1 ? '?' : '&') + string;
    }
    return url;
    }, 

我试图在 Ext.Ajax.request 方法中控制上面给出的 url,它说 url 未定义。我哪里错了?

仅供参考:这是我的文件结构:

-html file
-data folder - users.json
-app folder - store folder - js file (This is where I use my Ext.Ajax.request method)

我在相对路径中出错了吗?如果是这样,我应该如何使用它?

4

1 回答 1

3

如果未指定数据,并且如果autoLoadtrue或 Object,则在创建后自动调用此 store 的 load 方法。将autoLoad设置为false或使用类型为 ajax 和 reader 的代理,然后使用回调函数来处理您的 json 数据。

更新:试试这个

Ext.define('app.store.Students', {
extend: 'Ext.data.Store',
model: 'app.model.Student',
storeId: 'StudentData',
autoLoad: true,
proxy: {
    type: 'ajax',
    url: 'app/data/users.json',
    reader:{
        type: 'json',
        root: 'student1'//If you are using student1 as root.
    }
}
于 2013-06-24T05:00:58.177 回答