Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1417 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Un this qui pointe plus où il faut?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un this qui pointe plus où il faut?

n°1793662
dwogsi
Défaillance cérébrale...
Posté le 30-09-2008 à 04:45:04  profilanswer
 

Bonjour,
 
Avant de commencer :
1. J'ai de bonnes bases en Java Script
2. Sauf que la POO en JS je débute
3. Mon code vaut ce qu'il vaut, je suis ouvert aux remarques (constructives?)
4. J'utilise Mootools pour de multiple raisons, et pas seulement pour lire mon fichier XML
 
Voici mon problème :
J'essaie donc de lire et parser un fichier XML pour créé quelque objets. En fait, la communication entre mon interface d'admin et mon appli js repose sur un fichier XML que je charge lors de l'initialisation de cette appli. J'utilise pour cela Mootools et un objet de mon cru (c'est ce qui coince bien sûr) :

Code :
  1. function MyObject
  2. {
  3.  var models;
  4.  
  5.  this.init = function()
  6.  {
  7.    this.loadXML();
  8.  }
  9.  
  10.  this.loadXML = function()
  11.  {
  12.     // Chargement du fichier xml
  13.     var xmlRequest = new Request({
  14.       url : 'content.xml',
  15.       method : 'get',
  16.       async : false
  17.     });
  18.         
  19.     // Ok, lecture XML
  20.     xmlRequest.onSuccess = this.parseXML;
  21.         
  22.    // Envoit de la requête
  23.    xmlRequest.send();
  24.  }
  25.  
  26.  this.parseXML(responseTxt , responseXML)
  27.  {
  28.    // OSEF de ce qui se passe exactement
  29.    // pour simplifier je fais des choses de ce genre
  30.    this.models = new Array();
  31.    var i = new Object();
  32.    this.models.push(i);
  33.  }
  34. }
  35. // On lance le bouzin
  36. window.addEvent('domready',function () {
  37.  var app = new MyObject();
  38.  app.init();
  39. });

Ma méthode parseXML() est bien exécutée (vérifié à coup de alert()). Le problème c'est que lorsque je fait appel à une autre méthode par la suite, j'ai une erreur qui me dit que this.models est indéfini. Je pense que c'est une histoire de contexte, je veux dire par là que dans le contexte où est exécuté ma méthode parseXML() le this doit pas pointer vers l'instance de ma classe et que du coup mon models initiale reste toujours dans un état non initialisé.
 
J'ai fais des recherches, testé pas mal de choses mais je vois pas du tout comment m'en sortir... Un peu d'aide?


Message édité par dwogsi le 30-09-2008 à 04:45:57

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 30-09-2008 à 04:45:04  profilanswer
 

n°1793665
gatsu35
Blablaté par Harko
Posté le 30-09-2008 à 07:44:37  profilanswer
 

Code :
  1. xmlRequest.onSuccess = this.parseXML; // <======== look at this


 
tu as collé la méthode directement sur l'objet xmlRequest, ce qui signifie que ton "this" n'est plas ton objet (celui qui possede this.parseXML), mais le this correspond à xmlRequest.
 
Pour remédier à ce problème t'es obligé de passer par une fonction anonyme.
 

Code :
  1. var self = this;
  2. xmlRequest.onSuccess = function(rT,rX) {
  3.    self.parseXML(rT,rX);
  4. };


là ton this correspondra du coup au bon objet

n°1794047
dwogsi
Défaillance cérébrale...
Posté le 30-09-2008 à 20:51:14  profilanswer
 

Merci ça fonctionne à merveille. :)


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Un this qui pointe plus où il faut?

 

Sujets relatifs
gif apparait/remplacer en js ou css lorsque souris pointe lienProblème de pointeur objet mère qui pointe sur objet fille
This page requires AC_RunActiveContent.jsAccès site via index.html qui pointe vers index.php
Pointeur en argument -> obtention de la taille de l'élément pointé?Attacher une fonction avec THIS sur un evenement en DOM
Créer un texte dont chaque mot pointe vers une note.[Résolu][C# .Net] Changer le curseur quand je pointe une image
Un ControlToValidate (composant .net) qui pointe vers une fonction[Résolu][VS6] WinXP=>Win2k: "This program cannot be run in DOS Mode"
Plus de sujets relatifs à : Un this qui pointe plus où il faut?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR