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 éprouvé
    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
    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

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    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 confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    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.

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