J'ai un magasin proxy qui remplit de deux manières différentes - soit via loadData
, ou via load
.Événement qui se déclenche une fois que le magasin a des données
J'ai certaines actions qui devraient avoir lieu une fois le magasin rempli; à savoir un certain enregistrement doit être recherché et sélectionné:
preselectByName:function(name, groupName) {
var store = this;
if(store.preselected) return;
store.preselected = true;
store.on('load',function() {
store.selectByName(name, groupName);
store.preselected = false;
},store,{single:true});
}
appelé comme ceci:
if(store.isLoaded) store.selectByName(name, groupName);
else store.preselectByName(name, groupName);
Ce code fonctionne très bien si le magasin se remplit par load
, mais pas par loadData
.
- Y at-il un autre événement qui est tiré à la fois
load
etloadRecord
? - Sinon, comment pourrais-je implémenter un écouteur qui se déclenche sur l'un des deux événements, selon la première éventualité?
Oui, il peut être un problème que 'datachanged' incendies trop souvent.Je vais vérifier cela; mais puisque les enregistrements dans le magasin peuvent être édités dans des formes, et je veux seulement lancer sur 'load' ou' loadData', je ne suis pas sûr que c'est la voie à suivre. – Alexander
Peut-être que vous pourriez essayer quelque chose: au lieu de 'loadData()', vous pouvez essayer de remplacer le proxy par un proxy mémoire, définir la propriété 'data' sur les données requises, puis charger()', et enfin l'événement load remplace le proxy par rapport à l'original. Je n'ai pas testé cela, juste une idée. Peut-être un peu grincheux. –