2012-04-18 31 views
0

我想API属性知道如何使用代理的API属性,ST2如何使用的代理

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

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属性?

你能帮忙吗?

回答

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: '[email protected]'}); 

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

更新

var user = Ext.create('User', {name: 'Ed Spencer', email: '[email protected]'}); 
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: '[email protected]'}); 
user.save({ 
    success: function(user) { 
     user.destroy(); // will DELETE destroy URL 
    } 
}); 

有关于这对在煎茶的休息代理的更多信息Google文档: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: '[email protected]' }); 

store.sync(); // will batch update all the needed records 
+0

非常感谢你,它看起来我需要什么。那么是否需要在商店中使用sync()方法? – 2012-04-19 08:25:12

+0

@TDeBailleul你可以。我已更新我的帖子以包含'sync'。 – rdougan 2012-04-19 19:28:59