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 actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    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 actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    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 actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    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