2010-01-10 5 views
0

Si je fais ceci: cela fonctionne:ExtJs: TreeLoader: ça ne marche pas mais pourquoi?

var myTreeLoader = new Ext.tree.TreeLoader({ 
     dataUrl: 'json/test.php', 
}); 

Si j'ajoute ce code, il ne fonctionne pas:

var myTreeLoader = new Ext.tree.TreeLoader({ 
     dataUrl: 'json/test.php', 
     load : function(loader,node,response) { } 
}); 

Ma question est: pourquoi? Modifier/Supprimer le message

Répondre

1

La bonne réponse était:

var MyTreeLoader = new Ext.tree.TreeLoader({ 
    dataUrl: 'json/lys.php', 
    listeners: { 
     load: function(loader,node,response) { 
      console.log('datas loaded'); 
     } 
    } 
}); 

M. bmoeskau avait raison. Je remplaçais une fonction au lieu d'ajouter un écouteur.

+0

Désolé je n'étais pas plus spécifique - je ne savais pas que vous essayiez de gérer l'événement de chargement. Je suis content que vous l'ayez réglé. –

3

Eh bien, vous surchargez la méthode load() intégrée avec une implémentation vide. Qu'attendiez-vous qu'il fasse s'il ne peut pas charger les données?

+0

Voir http://www.extjs.com/deploy/dev/docs/?class=Ext.tree.TreeLoader (=> Méthodes publiques: load (...): Charger un Ext.tree.TreeNode à partir de l'URL spécifiée dans le constructeur ==> Événements publics: load: (...) Se déclenche lorsque le nœud a été chargé avec succès.) Deux choses différentes pour le même objet ... peut-être avez-vous raison .. . ne pas. –

1

Certains navigateurs (par exemple IE) n'aimeront pas la virgule de fin après dataUrl. Je ne sais pas si c'est votre problème ici, mais c'est une source sans fin de nombreux problèmes de JS.

+0

Ce n'était pas le vrai problème mais je garderai votre conseil en tête, merci. –