Sencha Touch MVC加载商店

时间:2011-12-07 16:57:41

标签: sencha-touch

我有一个我一直在研究的MVC应用程序,但我似乎缺少一些名称空间和正确访问对象的基础知识。我不明白在调用索引方法时如何加载我的商店。在我的模型中,自动加载是错误的,我使用的是我在其他应用程序(非MVC)中使用的相同代码,但无济于事。有什么想法吗?

这是我的app.js:

Ext.regApplication({
    name: 'MVC',
    defaultUrl: 'Home/index',
    launch: function(){
        console.log("Launching");
        this.viewport = new MVC.views.Viewport();

    }
});

这是我的控制者:

Ext.regController('Update', {

    // index action
    index: function(){
        if(networkStatus()==true){
            console.log("Checking for Updated Config: " + CONFIG_URL);
            MVC.stores.Updates.load();//Uncaught TypeError: Cannot read property 'Updates' of undefined
        }
        if ( ! this.indexView){
            this.indexView = this.render({
                xtype: 'UpdateIndex',
            });
        }
        this.application.viewport.setActiveItem(this.indexView);
    },
});

这是我的模特:

Ext.regModel('UpdateModel', {
    fields: [
        {name: 'id'},
        {name: 'version'},
        {name: 'date'},
        {name: 'md5'},
        {name: 'manifest-doc'},
        {name: 'manifest-image'}
    ]
});

这是我的商店:

Ext.regStore('Updates', {
    model: 'UpdateModel',
    storeId: 'Updates',
    autoLoad: false,
    proxy: {
        type: 'ajax',
        url: 'app/data/config.min.json',
        reader: new Ext.data.JsonReader({
            root: 'config',
        }),
        timeout: 6000,
        listeners: {
            exception:function () {
                console.log("Update Failed");
            }
        }
    }
});

2 个答案:

答案 0 :(得分:2)

尝试

var updatesStore = Ext.getStore("Updates");

http://docs.sencha.com/touch/2-0/#!/api/Ext-method-getStore

答案 1 :(得分:0)

什么是MVC?它应该是应用程序的名称,即

    Ext.regApplication({
      name: 'MVC',