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

Angular Discussion :

[Angular 2] Lancement de fonction après exécution d'un ngFor


Sujet :

Angular

  1. #1
    Membre éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut [Angular 2] Lancement de fonction après exécution d'un ngFor
    Bonjour à tous,

    j'ai un probléme concernant angular2, il est le suivant :

    Je fais un appel pour récupérer des datas dans le ngOnInit de mon component
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     initData(){
            this.appService.getDisplayData( this.id_LV ).then(
                rea => {
                    this.data = rea.retour;
                }
            )
          }
     
        ngOnInit(){
            this.initData();
        }
    => Ca marche
    Je fais un ngFor dans une liste déroulante pour la remplir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            <select *ngIf="data" name="data-shortcuts" id="treeViewSelect" (change)="controlChangeTreeView('prev')">
                <option *ngFor="let lv of data.ResultatWETV_LV.LV" value="{{lv.CTREE}}">{{lv.RTREE}} - {{lv.RaisonSociale}}</option>
            </select>
    Ca marche

    J'essaye de lancer une fonction javascript qui manipule le select fraichement créé
    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
     
    getInitTreeView(){
           this.treeView.currentOptionValue = $(".current-value")
           this.treeView.currentSelect = $("#treeViewSelect")
           this.treeView.selectIndex = 0
           this.treeView.boxListeView = $("#popupList")
           // Mise en place des onclick sur les liste "has-children"
           // $(".has-children").attr("onclick","this.manageTree(this)")
     
     
           this.initSelectValue(this.treeView.selectIndex)
        }
     
        initSelectValue(index){
           this.treeView.currentOptionValue[0].textContent = this.treeView.currentSelect[0].options[index].textContent
        }
    => Ca marche pas

    LE probléme vient du fait que je n'arrive pas à lui dire de lancement la fonction "getInitTreeView" seulement quand le select est mis en place.

    Y'a t-il un truc pour lui dire de lancer ma fonction javascript aprés mon ng-for?

    J'ai essayé les truc du style ngAfterContentInit mais sans succés (la récup des datas est une promise en asynchrone, d'ou le décallage)

  2. #2
    Membre éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut
    Re Bonjour,

    alors j'ai effectivemment trouve un truc qui est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        ngAfterContentChecked() {
            if (this.data != undefined && this.treeViewService.getCurrentSelect()!=undefined) {
                this.treeViewService.getInitTreeView()
            }
        }
    Je ne lance ma fonction que lorsque le select est existant (le check se fait en permanence).
    Et ca marche

    Y'a t-il plus propre?
    J'ai vu un truc qui s'appelle "tick_then" mais la doc n'est pas trés bavarde la dessus

    Edit : En fait, ca a marché au début et la je ne sais pas pourquoi, ca ne marche plus ...

  3. #3
    Membre éclairé Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Par défaut
    Bonjour,

    finalement, aprés reflexion, je peux me passer de ce que je voulais faire pour le transformer en quelque chose que plus "Angular" et ca devrait aller.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/04/2010, 20h20
  2. lancement de fonction les unes après les autres
    Par fflo4ever dans le forum ActionScript 3
    Réponses: 4
    Dernier message: 19/03/2010, 10h32
  3. Réponses: 2
    Dernier message: 29/07/2008, 15h04
  4. Réponses: 3
    Dernier message: 27/05/2008, 11h34
  5. Saisir une fonction après le lancement du logiciel
    Par mofetil dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/08/2006, 17h56

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