带有 Ext JS 的 MVC 架构中 store.load() 的动态代理 URL

hei*_*nob 3 proxy extjs extjs4

我想在加载(!)之前更改商店的代理。这种情况下的具体问题是我没有找到合适的时机,何时加载。

详细:

我通过创建 EXTJS4 架构定义的视图、控制器、模型和存储来创建 MVC 模型。该视图是一个网格面板。它在自己的定义语句中定义商店:

Ext.define('P.view.MyView' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.MyView',
    ...
    store: 'MyStore',
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我使用“autoload:true”加载商店时,一切正常,但当然代理是静态的,如代码中所定义。当我不使用“自动加载”并尝试设置“extraParams”并在我的视图的“initComponent”中加载商店时,例如:

initComponent: function() {
    ...
    this.store.load();    
    ....
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:对象“MyStore”没有方法“加载”。

我该怎么做?

dbr*_*rin 5

我要补充的是,在最后时刻加载数据的另一种常用方法是使用网格本身的 afterrender 侦听器,如下所示:

       listeners: {
             afterrender: function(grid) {
                grid.store.getProxy().url = 'request/my.json'; //modify your URL
                grid.store.load();    
             }
        }
Run Code Online (Sandbox Code Playgroud)

如您所见,您还可以影响您的商店和代理设置。这有助于将存储重用于类似网格。