IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[object Object] à la place du contenu d'une propriété d'objet


Sujet :

JavaScript

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 359
    Points : 564
    Points
    564
    Billets dans le blog
    2
    Par défaut [object Object] à la place du contenu d'une propriété d'objet
    Bjr,

    Assez novice en JS, et par nécessité, je bute sur un problème ch*** +++

    J'ai un TJSMarker qui possède une propriété .LayerName (string contenant le nom d'une couche)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function TJSMarker(QLayerName, QNativeCoordoX, QNativeCoordoY, QNativeCoordoZ, QLat, QLon, QEtiquette, QDesignation, QDescription, QObservations, QTypeMarker, QSize, QLineColor, QFillColor, QFillOpacity, QPhoto)
    {
    	this.LayerName = QLayerName;
    	this.NativeCoordoX = QNativeCoordoX;
    	this.NativeCoordoY = QNativeCoordoY;
    	this.NativeCoordoZ = QNativeCoordoZ;
    	this.Lat = QLat;
    	this.Lon = QLon;
    	this.Etiquette = QEtiquette;
    	this.Designation = QDesignation;
    	this.Description = QDescription;
    	this.Observations = QObservations;
    	this.TypeMarker = QTypeMarker;
    	this.Size = QSize;
    	this.LineColor = QLineColor;
    	this.FillColor = QFillColor;
    	this.FillOpacity = QFillOpacity;
    	this.Photo = QPhoto;
    } // TJSMarker
    J'affiche une info-bulle sur une carte OpenLayers. Cette infobulle affiche les valeurs d'un marqueur
    Tout se passe bien sauf que QMyMarker.LayerName me retourne [object Object] au lieu du contenu.



    Nom : ftc_javascript_objectObject.png
Affichages : 96
Taille : 327,4 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function DrawMarker(QMyMap, QL, QMyMarker)
    {
    	var QDemiLargeurRectangle = 0.0000089940 * QMyMarker.Size;
    	var QDemiHauteurRectangle = 0.0000089940 * QMyMarker.Size * 0.71;
    	var QContentPopUp = "";
    	if (QMyMarker.Photo.length > 3) // 
    	{
    		QContentPopUp += "<IMG width='300' SRC= '" + QMyMarker.Photo + "'</IMG>";
    	} // 
    	QContentPopUp += "<B>" + QMyMarker.Designation + "</B><BR>" +
    	QMyMarker.Etiquette +
    		"<HR>" +
    	"<P>" + QMyMarker.Description  + "</P>" +
    	"<P>" + QMyMarker.Observations + "</P>" +
    		"<HR>" +
    	"X = " + QMyMarker.NativeCoordoX + // OK
    	" - Y = " + QMyMarker.NativeCoordoY + 
    	" - Z = " + QMyMarker.NativeCoordoZ +
    	"<HR><B> Layer: " + QMyMarker.LayerName + "</B>"; // ce fdp me retourne [object Object] 
    	QContentPopUp += "<HR>" +
    	"Lat: " + QMyMarker.Lat.toFixed(8) + " - Lon: " + QMyMarker.Lon.toFixed(8);
          ...
    cdlt

    Ci-dessous: fichier HTML incriminé
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 360
    Points : 15 708
    Points
    15 708
    Par défaut
    fdp = fou désordonné pathétique ?

    pour voir ce que contient cet objet, utilisez console.log(objet); pour afficher son contenu dans la console.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 283
    Points
    283
    Par défaut
    Bonjour,

    De toute évidence, `QLayerName` n'est pas une `string` mais un `objet`.

    En regardant le fichier joint, je constate que `QLayerName` fait référence à un LayerGroup, car visiblement la fonction `CreateMarker` a été appelée avec la variable référençant l'objet, plutôt qu'avec son nom (`string`):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateMarker(BretellesA63, ...);
    ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateMarker("BretellesA63", ...);
    ?


    Je me permets aussi une petite remarque : l'utilisation de majuscules au début des variables (PascalCase) rend difficile la compréhension du code car c'est, par convention, généralement réservé aux constructeurs/classes et types. On utilise plutôt pour nommer les variables, paramètres et fonctions/méthodes, le lower camelCase : `createMarker(bretellesA63...)`par exemple.

Discussions similaires

  1. [Débutant] Comparaison sur une liste contenu dans une classe d'objet
    Par jpbelmondo59 dans le forum C#
    Réponses: 8
    Dernier message: 02/09/2014, 11h45
  2. [WD-2010] Macro récupérant le contenu d'une propriété liée à Sharepoint.
    Par Dredlox dans le forum VBA Word
    Réponses: 7
    Dernier message: 22/07/2013, 22h37
  3. Réponses: 0
    Dernier message: 03/06/2011, 17h40
  4. [WPF]Binding d'une propriété contenu dans une propriété
    Par Babas007 dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 23/11/2010, 19h51
  5. Contenu d'une variable et objet
    Par alphascorpii dans le forum Général Python
    Réponses: 5
    Dernier message: 23/03/2010, 23h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo