Model ExtJS4-代理、存储、模型、自动加载-有什么神奇之处?

Model ExtJS4-代理、存储、模型、自动加载-有什么神奇之处?,model,proxy,extjs4,store,Model,Proxy,Extjs4,Store,我在模型上定义了一个代理 我定义了一个指向模型的存储,没有代理,因为我希望它使用在模型上定义的存储 store.autoLoad:true不起作用 我必须从我的控制器显式调用 var-store=this.getMyStore(); store.load(); 这是预期的行为吗 这不是自动加载的目的吗 它是否仅在存储上定义了代理时才起作用 代码: model/MyThing.js Ext.define('MyApp.model.MyThing'{ 扩展:“Ext.data.Model”, 字段

我在模型上定义了一个代理

我定义了一个指向模型的存储,没有代理,因为我希望它使用在模型上定义的存储

store.autoLoad
:true不起作用

我必须从我的控制器显式调用

var-store=this.getMyStore();
store.load();
这是预期的行为吗

  • 这不是自动加载的目的吗
  • 它是否仅在存储上定义了代理时才起作用
  • 代码:

    model/MyThing.js

    Ext.define('MyApp.model.MyThing'{
    扩展:“Ext.data.Model”,
    字段:['id','reference'],
    代理:
    {
    键入:“ajax”,
    url:“神话”
    }
    });
    
    store/MyThings.js

    Ext.define('MyApp.store.MyThings'{
    扩展:“Ext.data.Store”,
    自动加载:对,
    自动同步:错误,
    模型:“MyApp.model.MyThing”
    });
    
    您不会显示如何创建商店。 您应该在FireBug中看到一个HTTP GET请求(假设您正在使用FireFox并拥有它),只要您调用:

    Ext.create('MyApp.store.MyThings');
    
    我将您的代码添加到我的应用程序中,并获得了预期的结果,因此它应该可以正常工作

    更新:


    为了响应您自己发布的答案,您可以将该配置对象作为
    autoLoad
    (而不是
    autoLoad:true
    )提供,以获得相同的功能,而无需显式调用
    store.load()

    实际上,这是一个新手的事情。我一直有点渴望成为一只海狸

    在存储完成加载之前(作为异步加载),我正在查看它

    最佳实践是订阅load()函数的回调,然后执行某些操作

    store.load({
        scope   : this,
        callback: function(records, operation, success) {
            //the operation object contains all of the details of the load operation
            console.log(records);
        }
    });
    

    确保您有
    自动加载
    ,而不是
    自动加载
    。一旦你启动应用程序,它会自动加载商店。是的,我可以看到它也有用途