如何在extjs中使用具有不同URL的同一商店

时间:2013-02-20 11:10:23

标签: extjs extjs4 store

我在extjs工作。我有商店 -

 Ext.define('Balaee.store.qb.QbqnsStore',{
            extend: 'Ext.data.Store',
            model: 'Balaee.model.qb.QbqnsModel',
            autoLoad: true,

            proxy:
            {
                type:'ajax',
                api:
                {
        read:index.php/QuestionBank/qbpaper/createpaper',

        },
                reader:
                {type:'json',
                    //root:'polls',},
                writer:
                {type:'json',
                    root:'data',
                }}});

因此,代理的读取属性设置为Url以上。现在我想将这个相同的商店用于其他视图,但使用不同的Url来读取属性。那么如何动态更改商店的读取URL?我试过 - 按钮点击事件我想从网址读取数据 - /index.php/QuestionBank/qbpaper/Reviewquestionpaper111

所以按钮点击功能我写的是 -

review:function()
    {
        //alert("hello");

        var QbqnsStore=this.getStore('qb.QbqnsStore');
        proxy=QbqnsStore.getProxy();
        Ext.apply(proxy.api,{
            read:'http://127.0.0.1/s_balaee/Balaee/index.php/QuestionBank/qbpaper/Reviewquestionpaper',

        });

我已创建此商店的变量并提供了新的必需URL。它不工作。 那么如何在read属性中使用不同URL的不同视图使用同一个商店。

4 个答案:

答案 0 :(得分:3)

您可以尝试如下:

QbqnsStore.proxy.url =  'new url';

这会改变它的url.be确定更改网址后你应该重新加载你的商店:

QbqnsStore.reload();

答案 1 :(得分:2)

您可以使用此代码:

 var QbqnsStore=this.getStore('qb.QbqnsStore').load({url:'newUrl'});

答案 2 :(得分:0)

您只需更改对象代理读取属性:

  var store = this.getStore('qb.QbqnsStore');
  proxy = store.getProxy();
  proxy.api.read = 'http://127.0.0.1/myNewUrl';

然后调用store.sync()store.load()方法。

答案 3 :(得分:0)

store.proxy.api.read =' new url';