繁体   English   中英

ExtJs-如何使用Ext.Ajax.request方法使用extjs加载json文件?

[英]ExtJs - How to load json file using extjs with the Ext.Ajax.request method?

我希望使用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
    }
});

但显示“未捕获的TypeError:无法调用未定义的方法'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)

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

如果未指定数据,并且autoLoadtrue或Object,则在创建后会自动调用此商店的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.
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM