나머지 프록시를 사용하여 기존 모델 인스턴스를 업데이트하는 적절한 방법을 찾을 수 없습니다. Sencha Touch는 POST 대신 REST 백엔드 대신 PUT을 보냅니다.Sencha Touch 2에서 나머지 프록시로 모델 인스턴스를 업데이트하는 올바른 방법
처음부터 새로운 proyecto 생성 :
내가 그 단계를 따랐다. Test.js 모델 내부sencha generate model Test id,feld1
설정 idProperty 휴식 프록시 : 그런 다음, 엽차 명령을 사용하여 새 모델을 추가
idProperty: 'id',
proxy :{
type: 'rest',
url: 'http://localhost:3000/products'
}
그런 다음
models: [
'Test'
]
을 app.js이 모델 추가 , 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');
}
}):
}
이로 인해 업데이트 및 기존 모델 인스턴스를 예상 한대로 PUT 대신 백엔드 서버에 POST 요청이 발생합니다. Sencha는 idPropertyField (id)가 null이거나 비어 있지 않기 때문에 Sencha가 기존 인스턴스라는 것을 알고 있다고 가정합니다.
Request URL:http://localhost:3000/products?_dc=1466427599915
Request Method:POST
Request Payload: {id: "1", feld1: "some text"}
Sencha Touch에서 기존 모델 인스턴스를 REST 프록시를 사용하여 업데이트하는 올바른 방법은 무엇입니까? POST 대신 PUT 요청을 발생시키는 방법은 무엇입니까?
감사합니다. 이상하게도, 나는 성공하기 전에 그것을 시도 했었습니다. 아마도 캐시 된 스크립트 일 것입니다. id 속성이 null이거나 항상 수동으로 설정하지 않고 자동으로 비어있는 경우 팬텀 속성을 false로 만드는 방법이 있습니까? – Oscar
모델 클래스의 set 메서드를 재정의하고 idProperty와 일치하는 필드를 확인한 다음 팬텀을 false로 업데이트 할 수 있습니다. – Stuart
굉장합니다. 시간과 도움에 감사드립니다. – Oscar