J'ai un magasin json chargé, j'ai besoin de saisir un enregistrement de celui-ci. J'ai utilisé: getAt(index)
, find()
, getById()
, mais aucun résultat. Ceci est mon code:Obtenir des enregistrements de json store extjs
var appSettingReader = new Ext.data.JsonReader({
root: 'results',
},[
{name: 'id', type: 'int', mapping: 'id'},
{name: 'projetId', type: 'int', mapping: 'projetId'},
{name: 'resLevels', type: 'int', mapping: 'resLevels'},
{name: 'maxResToLock', type: 'int', mapping: 'maxResToLock'},
{name: 'maxTimeToLock', type: 'int', mapping: 'maxTimeToLock'},
{name: 'infosToPrint', type: 'string', mapping: 'infosToPrint'}
])
var appSettingStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: 'inc/getSettings.php',
method: 'POST'
}),
baseParams:{task: "app"},
reader : appSettingReader,
sortInfo:{field: 'id', direction: "DESC"}
})
appSettingStore.load();
Ce retour de code non défini:
console.log(appSettingStore.getAt(0));
console.log(appSettingStore.find("id","1"));
Ceci est la chaîne JSON retournée du serveur:
{success:true,"results":[{"id":"1","projetId":"1","resLevels":"1","maxResToLock":"40","maxTimeToLock":"10","infosToPrint":"1_2_3_5","hotlineMail":"[email protected]"}]}
J'ai aussi testé ce code:
var records = new Array()
var test = appSettingStore.each(function(rec){
records.push(rec)
})
console.log(records)
et je reçois un tableau vide!
PS: Ce magasin n'est lié à aucun composant; Je veux juste lire et écrire.
J'ai remarqué un problème que vous aurez. Dans l'objet Champs de votre JsonReader, vous déclarez un champ appelé "idProjet", mais votre serveur renvoie "projetId". Assurez-vous que ceux-ci correspondent pour obtenir les résultats souhaités. – McStretch
c'était une erreur le problème pas résolu, je reçois le magasin bien chargé j'ai testé avec une grille ça marche! Je ne peux toujours pas utiliser find() ou une fonction de filtre – cranberies
Quel était le problème, par curiosité? – timdev