Obtenir les dossiers de json magasin extjs
J'ai un json magasin chargé, j'ai besoin de saisir un enregistrement à partir d'elle.
J'ai utilisé : getAt(index)
, find()
, getById()
, mais pas de résultats .
C'est mon code :
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 code de retour non défini :
console.log(appSettingStore.getAt(0));
console.log(appSettingStore.find("id","1"));
C'est la chaîne json retourné à partir 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 j'obtiens un tableau vide !
PS : Ce magasin n'est pas lié à l'un des composants;
Je veux juste lire et écrire.
J'ai remarqué un problème que vous aurez. Dans votre JsonReader les champs de l'objet que vous déclarez un champ appelé "idProjet", mais le serveur renvoie "projetId". Assurez-vous que ceux qui correspondent à obtenir les résultats souhaités.
c'est une erreur, le problème n'est pas résolu , j'ai un magasin de beaux-chargé j'ai testé avec une grille de travailler ! j'ai toujours ne peux utiliser find() ou toute fonction de filtre
Quel était le problème, de la curiosité?
le problème, c'est que le magasin de charge très bien , mais je ne peux pas utiliser des méthodes comme : find() , getById() , getAt() ?
toute solution idée ?
c'est une erreur, le problème n'est pas résolu , j'ai un magasin de beaux-chargé j'ai testé avec une grille de travailler ! j'ai toujours ne peux utiliser find() ou toute fonction de filtre
Quel était le problème, de la curiosité?
le problème, c'est que le magasin de charge très bien , mais je ne peux pas utiliser des méthodes comme : find() , getById() , getAt() ?
toute solution idée ?
OriginalL'auteur cranberies | 2010-10-30
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de faire un rappel sur le store, qui sera tiré après le chargement. Vous pouvez ensuite utiliser les données requises.
OriginalL'auteur Mark
Il semble que le serveur est de retour invalid JSON. Pourquoi est-ce que votre script côté serveur de la sortie de commencer avec "("?
Si ce n'est pas réellement le problème, peut-être vous devriez envisager d'accepter un peu plus de réponses à vos questions. Les gens seront plus enclins à vous aider.
MODIFIER: Ok, donc vous êtes sûr que vous obtenez json valide depuis le serveur. Essayez d'ajouter un "succès" de la propriété à votre serveur de production.
Si cela ne fonctionne pas, vous aurez envie de creuser un peu plus. Essayez d'ajouter une option de rappel de votre magasin .load(), et de regarder le truc qui se passait dans la fonction de rappel. Qui devrait vous aider à comprendre où les choses vont mal.
il n'y a pas de problème dans le stor il charge fine , je peux le lier avec une grille, je ne sais pas où est le probleme , je ne peux pas utiliser, stocker les méthodes pour trouver des enregistrements
OriginalL'auteur timdev