0

我想知道如何在ST2中使用代理的api属性

现在,我的代理配置中有这个:

api: {
    create  : App.urls.create_object,
    read    : App.urls.load_object,
    update  : App.urls.update_object,
    destroy : App.urls.destroy_object
}

但是,我不知道如何使用它。例如,当我想创建一个新对象时,我使用以下参数创建了一个 Ext.Ajax.request:

url: App.urls.create_object,
params: {
    'object': object
},

但是现在,我怎么能对 api 属性做同样的事情呢?

你能帮忙吗 ?

4

1 回答 1

1

假设您有这样的模型:

Ext.define('User', {
    fields: ['name', 'email'],
    proxy: {
        type: 'ajax',
        api: {
            create: 'my_create_url',
            read: 'my_read_url',
            update: 'my_update_url',
            destroy: 'my_destroy_url'
        }
    }
});

创造

var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});

user.save(); // will POST to the create url

更新

var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save({
    success: function(user) {
        user.set('name', 'Robert Dougan');

        user.save(); // will PUT update URL
    }
});

使用商店:

var store = Ext.create('Ext.data.Store', {
    model: 'User'
});

store.load(); // will GET to read URL

使用模型:

// will GET the read URL with the specified ID.
User.load(12, {
    success: function(user) {
        console.log(user);
    }
});

破坏

var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'});
user.save({
    success: function(user) {
        user.destroy(); // will DELETE destroy URL
    }
});

Sencha Docs 中有关 Rest 代理的更多信息:http ://docs.sencha.com/touch/2-0/#!/api/Ext.data.proxy.Rest

同步

您还可以使用存储同步方法批量创建/更新/销毁存储中的所有记录。

var store = Ext.create('Ext.data.Store', {
    model: 'User'
});

store.add({ name: 'Robert Dougan', email: 'rob@sencha.com' });

store.sync(); // will batch update all the needed records
于 2012-04-18T21:45:37.827 回答