2012-04-18 1 views
0

Я хотел бы знать, как использовать атрибут апи через прокси-сервер в 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 
}, 

Но теперь, как я мог бы сделать то же самое с апи атрибут?

Не могли бы вы помочь?

ответ

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 
    } 
}); 

Существует более подробную информацию об этом на прокси отдых в Сенча Документы: 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() в хранилище? –

+0

@TDeBailleul вы можете. Я обновил сообщение, чтобы включить 'sync'. – rdougan

Смежные вопросы