Je ne trouve pas de manière appropriée de mettre à jour une instance de modèle existante en utilisant un proxy de repos, Sencha Touch envoie toujours un PUT au lieu de POST au backend REST.Façon correcte de mettre à jour une instance de modèle avec un proxy de repos dans Sencha Touch 2
J'ai suivi ces étapes:
générons une nouvelle Proyecto à partir de zéro. Ensuite, ajoutez un nouveau modèle en utilisant la commande sencha:
sencha generate model Test id,feld1
Set idProperty et proxy repos à l'intérieur modèle Test.js:
idProperty: 'id',
proxy :{
type: 'rest',
url: 'http://localhost:3000/products'
}
Ajouter ce modèle à app.js
models: [
'Test'
]
Ensuite , à l'intérieur de la fonction de lancement de 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');
}
}):
}
Cela provoque une demande POST au serveur principal, au lieu d'un PUT, comme prévu lors de la mise à jour et de l'instance de modèle existante. Je suppose ici que Sencha sait qu'il s'agit d'une instance existante car idPropertyField (id) n'est pas nul ou vide.
Request URL:http://localhost:3000/products?_dc=1466427599915
Request Method:POST
Request Payload: {id: "1", feld1: "some text"}
Quelle est la bonne façon de mettre à jour une instance de modèle existant dans Sencha Touch utilisant un proxy REST? Comment faire déclencher une requête PUT au lieu de POST?
Merci pour votre réponse. Étrangement, j'ai essayé cela sans succès, peut-être un script en cache. Existe-t-il un moyen de rendre la propriété fantôme renvoyée false lorsque idProperty est vide ou vide automatiquement au lieu de devoir le définir manuellement tout le temps? – Oscar
Vous pouvez substituer la méthode set de la classe model et vérifier le champ correspondant à idProperty, puis mettre fantôme à false. – Stuart
Génial. Merci pour votre temps et votre aide. – Oscar