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

Bibliothèques & Frameworks Discussion :

Nombre d'élément dans Store [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Points : 35
    Points
    35
    Par défaut Nombre d'élément dans Store
    Bonjour,

    tout d'abord voici ma fonction javascript:

    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
    function loadListDepends(targetUrlToLoad, elementDepends, elementToChange){
        dijit.byId(elementToChange).reset();
        var elemDepends = dijit.byId(elementDepends).attr('value');
        var dataStore = new dojo.data.ItemFileReadStore({url: targetUrlToLoad + '/' + elemDepends});
        dijit.byId(elementToChange).store = dataStore;
     
        nbItems =0;
     
        var gotItems = function(items, request){
                        console.info(items.length);
                        nbItems = items.length;
        };
        dataStore.fetch({onComplete: gotItems});
     
        if(nbItems == 0){
            dojo.style(dijit.byId(elementToChange).DomNode, 'display', 'none');
        }
        else{
            dojo.style(dijit.byId(elementToChange).DomNode, 'display', 'block');
        }
    }
    Mon problème étant que je souhaite attribuer à "nbItems" items.length. Hors ce n'est pas le cas.
    Par contre le nombre d'éléments du store est bien affiché en console.

    Je sais que je ne peux récupérer la valeur comme ça car la fonction "gotItems" est encapsulée dans un objet. Mais n'ayant jamais fais de javascript Objet comment puis je faire??

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Et si vous affichez la valeur de nbItems ici ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dataStore.fetch({onComplete: gotItems});
    console.info(nbItems);    
    if(nbItems == 0){

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Points : 35
    Points
    35
    Par défaut
    J'ai testé et la variable vaut toujours 0 même lorsqu'elle ne devrait pas

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Le fetch est asynchrone donc quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        nbItems =0;
     
        var gotItems = function(items, request){
                        console.info(items.length);
                        nbItems = items.length;
        };
        // ASYNCHRONE
        dataStore.fetch({onComplete: gotItems});
        //le fetch n'a pas fini son travail !!
        if(nbItems == 0)...
    et bien ta fonction gotItems n'a toujours pas été exécutée, d'où nbItems=0. Techniquement ta portion de code au niveau du if devrait être dans gotItems.

    Bon dev,

    ERE
    Quand une tête pense seule, elle devient folle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] comment trouver le nombre d'éléments dans une sgbd
    Par Bathou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2008, 17h29
  2. Compter le nombre d'éléments dans un fichier texte
    Par Olivier Regnier dans le forum Langage
    Réponses: 13
    Dernier message: 21/11/2007, 16h02
  3. Réponses: 3
    Dernier message: 04/10/2005, 15h13
  4. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01
  5. Comparaison de base et calculs du nombre d'éléments dans Bas
    Par BXDSPORT dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/07/2004, 08h00

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