残りのプロキシを使用して既存のモデルインスタンスを更新する適切な方法が見つからない場合、Sencha TouchはPOSTの代わりにPUTをRESTバックエンドに送信します。モデルインスタンスを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要求が更新され、既存のモデルインスタンスが予想どおりに生成されます。 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