Я не могу найти подходящий способ обновления существующего экземпляра модели с помощью прокси-сервера для отдыха, Sencha Touch всегда отправляет PUT вместо POST на сервер REST.Правильный способ обновления экземпляра модели с помощью прокси-сервера для отдыха в Sencha Touch 2
Я последовал за эти шаги:
сгенерирует новый PROYECTO с нуля. Затем добавьте новую модель с помощью команды Сенча:
sencha generate model Test id,feld1
Set idProperty и прокси остальное внутри Test.js модели:
idProperty: 'id',
proxy :{
type: 'rest',
url: 'http://localhost:3000/products'
}
Добавить эту модель app.js
models: [
'Test'
]
Тогда , внутри функции запуска app.js:
launch: function() {
var test = Ext.create('test.model.Test');
test.set('id', '1');
test.set('feld1', 'some text');
test.save({
success: function(){
console.log('Ok');
},
failure: function(){
console.log('Ko');
}
}):
}
Это вызывает запрос POST на серверный сервер вместо PUT, как и ожидалось при обновлении и существующий экземпляр модели. Я предполагаю, что Sencha знает, что это уже существующий экземпляр, поскольку idPropertyField (id) не является нулевым или пустым.
Request URL:http://localhost:3000/products?_dc=1466427599915
Request Method:POST
Request Payload: {id: "1", feld1: "some text"}
Каков правильный способ обновления существующего экземпляра модели в Sencha Touch с использованием прокси-сервера REST? Как заставить его запускать запрос PUT вместо POST?
Спасибо за ваш ответ. Как ни странно, я пробовал это раньше, без успеха, возможно, в кешированном скрипте. Есть ли способ заставить фантомное свойство возвращать false, когда idProperty имеет значение null или пусто, вместо того, чтобы вручную устанавливать его вручную? – Oscar
Вы можете переопределить метод set класса модели и проверить поле, соответствующее idProperty, а затем обновить фантом на false. – Stuart
Awesome. Спасибо за ваше время и помощь. – Oscar