2012-04-18 62 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