2015-03-25 6 views
1

У меня есть магазин, и я добавляю новую запись с этим кодом. Сначала он добавляет новую запись, а затем синхронизируется с фоновым контентом.Как обновить магазин с помощью формы в ExtJS?

Ext.getStore('ilhan').add(Ext.getCmp('contacForm').getValues()); 
Ext.getStore('ilhan').sync({ 
    success: function(){ 
     Ext.getStore('ilhan').load(); 
     Ext.getCmp('customerWindow').close(); 
    } 
}); 

Я также могу удалить запись с помощью этого кода ниже.

Ext.getStore('ilhan').remove(Ext.getCmp('theGrid').getSelectionModel().getSelection()[0]); 
Ext.getStore('ilhan').sync({ 
    success: function(){ 
     Ext.getStore('ilhan').load(); 
    } 
}); 

Но я не знаю, как обновить запись. Я могу только заполнить форму данными из строки сетки.

Ext.getCmp('contacEditForm').getForm().setValues(Ext.getCmp('theGrid').getSelectionModel().getSelection()[0].data); 

Итак, у меня есть add и remove метод для магазина, но у меня нет никакого update метода? Как я должен обновлять магазин?

ответ

1

Посмотрите на свою запись. Посмотрите, истинно ли свойство «грязное». Это то, что используют прокси, чтобы определить, является ли запись записью или помещением.

2

Обновить.

var form = Ext.getCmp('contacForm'), 
    record = form.getRecord(), 
    values = form.getValues(), 
    store = Ext.getStore('ilhan'); 
record.set(values); 
store.sync({ 
    success:function() { 
     store.load() 
    } 
}); 
3

Предлагаю использовать Model.

Ext.define('User', { 
    extend: 'Ext.data.Model', 
    fields: ['id', 'name', 'email'], 

    proxy: { 
     type: 'rest', 
     url : '/users' 
    } 
}); 

Создать:

var user = Ext.create('User', {name: 'Ed Spencer', email: '[email protected]'}); 

user.save(); //POST /users 

нагрузка:

//Uses the configured RestProxy to make a GET request to /users/123 
User.load(123, { 
    success: function(user) { 
     console.log(user.getId()); //logs 123 
    } 
}); 

Update:

//the user Model we loaded in the last snippet: 
user.set('name', 'Edward Spencer'); 

//tells the Proxy to save the Model. In this case it will perform a PUT request to /users/123 as this Model already has an id 
user.save({ 
    success: function() { 
     console.log('The User was updated'); 
    } 
}); 

Удалить:

//tells the Proxy to destroy the Model. Performs a DELETE request to /users/123 
user.erase({ 
    success: function() { 
     console.log('The User was destroyed!'); 
    } 
}); 

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

  • Нет связанных вопросов^_^