2013-01-31 3 views
2

J'utilise extjs sencha stocker pour stocker des données. Je fais un appel proxy à un web-service pour obtenir des données. J'actualise les données en utilisant la fonction store.load().Processus extjs stocker les données proxy après les données reçues

Je cherche à éditer les données reçues avant qu'elles soient données à la grille.

Je connais l'événement load, mais cette fonction est exécutée une fois la charge terminée et les données renseignées avec les données en cours. Je cherche à voir comment je peux éditer les données renvoyées du web-service avant qu'il soit assigné au magasin. Fondamentalement, les données renvoyées par mon webservice sont dans un format différent de celui que nous donnons à extjs datagrid. Donc, vous voulez faire une opération de données avant de donner à la grille. J'espère que nous pouvons le faire.

Thx

+0

Vous pouvez remplacer le Ext.data.Proxy qui a le pertinent créer, lire, mettre à jour, supprimer des méthodes de lecture remplacer si, et vous obtiendrez les informations avant d'obtenir le résultats mis dans votre magasin. – darren102

+0

J'ai essayé cette fonction mais maintenant je vois que les données qui sont montrées à la grille sont vides – user1402539

+0

read: function (opération, callback, scope) { var thisProxy = this; var cityInfo = [ \t {name: 'New Jersey', localisation: 'East Coast'}, \t {name: 'California', localisation: 'West Coast'}]; operation.resultSet = new Ext.data.ResultSet ({ enregistrements: cityInfo, total: cityInfo.length }); Si (typeof callback == "fonction") { callback.call (scope || thisProxy, opération); } \t} – user1402539

Répondre

3

applications de modèles peuvent vous aider à le faire. Une fonction de conversion peut également être fournie. Voici l'exemple de la docs:

Ext.define('User', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { 
      name: 'firstName', 
      convert: function(value, record) { 
       var fullName = record.get('name'), 
        splits = fullName.split(" "), 
        firstName = splits[0]; 

       return firstName; 
      } 
     }, 
     'name', 'email', 
     {name: 'age', type: 'int'}, 
     {name: 'gender', type: 'string', defaultValue: 'Unknown'} 
    ] 
}); 
+0

Merci ... Cela peut-il être utilisé pour transformer un JSON complètement à un autre? Idéalement, je cherche à convertir les données de service Web entrantes en une nouvelle donnée json. Nous pouvons le faire par cette méthode? – user1402539

+0

idéalement, vous le feriez du côté serveur. – dbrin

+0

ya..so, le webservice est un webservice générique qui est également donné au public externe ... puisque nous construisons une couche dessus, nous le faisons du côté javascript .. – user1402539

Questions connexes