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

AngularJS Discussion :

Comment ajouter une directive avec JQuery


Sujet :

AngularJS

  1. #1
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut Comment ajouter une directive avec JQuery
    Bonjour,

    J'ai fait une directive:
    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
     
    angular.module('TEST').directive('helloWorld', function() {
            return {
                scope:{
                    name : '=',         
                    nameStatic : '@', 
                    select : '&'        
                },
                restrict: 'AEC',
                replace: 'true',
                template: '<p ng-click="select()">Hello World!! {{name}} {{nameStatic}}</p>',
                link: function(scope, element, attributs){
                    console.log(attributs.nameStatic);
                }
            };
        });
    J'aimerai avec Jquery l'ajouter à ma page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("body").append("<hello-world name-static='Parametre statique' select='testDirective()' id='screenshot'/>");
    Je sais que l'on devrait éviter d'utiliser les 2 techno mais je suis en train de migrer petit à petit.

    Comment puis je faire à votre avis ? Le code marche un element HTML classic

    Merci pour vos conseils
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    Salut, ta méthode ne va pas fonctionner de cette manière.

    Les directives que tu crée avec angular ne seront remplacées que si elle se trouvent dans ton template, en fait, il faut qu'elles soient présentes sur ta page avant qu'angular ne passe en phase de $compile.
    Pour tester, essaie d’exécuter $('body').append() avant ton appel 'angular.js' ou 'angularmin.js', et ça devrait fonctionner.

    Ce problème se produit lorsqu'on essaie d'ajouter dynamiquement des directives crées avec angular, va voir ici.
    Si tu tape '<b>machin<b>' dans l'input, le résultat affiché sera bien 'machin', mais si tu tape '<test></test>', le résultat sera vide.

    Ne pourrais-tu pas provoquer cet ajout d’élément depuis angular plutôt que depuis jQuery ?

  3. #3
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Topolino ta question fait vraiment partie des ultra-basiques.

    Prends la peine de faire les exercices proposés sur le site officiel et tu auras tes réponses.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2015, 05h53
  2. Comment ajouter une clé avec un .reg
    Par Didou6958 dans le forum Windows 7
    Réponses: 3
    Dernier message: 19/04/2013, 16h17
  3. Comment faire une direction avec une session
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 20/06/2007, 21h35
  4. Réponses: 1
    Dernier message: 27/04/2007, 18h29
  5. [VS2005] Comment ajouter une solution avec VS2005
    Par Khrysby dans le forum Visual Studio
    Réponses: 1
    Dernier message: 24/10/2006, 03h34

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