Jquery, les appels ne fonctionne pas dans $viewContentLoaded Angulaire
Impossible d'appeler des fonctions jquery $viewContentLoaded événement Angulaire contrôleur, voici le code pour le même.
$scope.$on('$viewContentLoaded', function() {
jQuery.growlUI('Growl Notification', 'Saved Succesfully');
jQuery('#category').tree()
});
Est toute la configuration nécessaire ici?? J'ai essayé même noConflict(); var $jq = jQuery.noConflict();
Nécessite-t-il toute autre configuration?
Grâce,
Abdul
Pourriez-vous faire une punker montrant le problème? plnkr.co/edit, appuyez sur Nouveau -> AngularJS
Merci pour la réponse Andy. Après avoir regardé votre code hier, ont déplacé tout cela à la coutume de la directive. Cependant, j'ai un nouveau problème maintenant, je suis à l'aide de "ng-repeat" dans mon custom de la directive. Cependant, j'ai besoin d'appeler une fonction jquery sur la coutume de la directive élément après que le contenu est chargé. Dans postlink fonction, le modèle devient chargé, mais "ng-repeat" éléments ne sont pas encore exécutés. Est-il de toute autre fonction/ cas où j'ai besoin d'appeler la fonction jQuery. (fonction que je voudrais appeler normalement dans $document.prêt() ).
Vous devriez $regarder la liste qui se répète, et chaque fois qu'il change de ré-appliquer la fonction jQuery.
Merci pour la réponse Andy. Pourrait apprendre Angulaire dans le court laps de temps en raison de continue de soutenir Angulaire de la communauté.
Merci pour la réponse Andy. Après avoir regardé votre code hier, ont déplacé tout cela à la coutume de la directive. Cependant, j'ai un nouveau problème maintenant, je suis à l'aide de "ng-repeat" dans mon custom de la directive. Cependant, j'ai besoin d'appeler une fonction jquery sur la coutume de la directive élément après que le contenu est chargé. Dans postlink fonction, le modèle devient chargé, mais "ng-repeat" éléments ne sont pas encore exécutés. Est-il de toute autre fonction/ cas où j'ai besoin d'appeler la fonction jQuery. (fonction que je voudrais appeler normalement dans $document.prêt() ).
Vous devriez $regarder la liste qui se répète, et chaque fois qu'il change de ré-appliquer la fonction jQuery.
Merci pour la réponse Andy. Pourrait apprendre Angulaire dans le court laps de temps en raison de continue de soutenir Angulaire de la communauté.
OriginalL'auteur Abdul Azeez | 2012-08-18
Vous devez vous connecter pour publier un commentaire.
Première chose d'abord, ne pas faire de manipulation du DOM à partir du contrôleur. Au lieu de le faire à partir de directives.
Vous pouvez faire la même chose dans la directive méthode de lien. Vous pouvez accéder à la
element
sur laquelle la directive est appliquée.Assurez-vous de charger jquery avant angularjs scripts, puis grawlUI, trois, angularJS et enfin votre script d'application. Ci-dessous est la directive de l'échantillon
angularjs a construit en jQuery lite.
si vous chargez plein jquery après angulaire, depuis jQuery est déjà défini, le plein script jquery va sauter l'exécution.
==Mise à jour après votre commentaire==
J'ai examiné de nouveau à votre question après le commentaire et se rendit compte que le contenu qui est chargé de l'auge ajax est ajouté à certains div dans votre angulaire de vue. Alors vous voulez appliquer à l'élément.arbre() de jquery plugin pour que le contenu. Malheureusement l'exemple ci-dessus ne fonctionnera pas puisqu'il est tiré sur la liaison qui s'est passé avant votre contenu de l'ajax réponse est ajouté à l'élément avec la directive j'ai montré à vous. Mais ne vous inquiétez pas, il y a un moyen 🙂 tho il est rapide et sale, mais c'est juste pour la démo.
Disons que c'est votre contrôleur
Maintenant, la directive qui est en contrôleur de portée (il utilise le même champ d'application que contrôleur)
La deuxième approche serait de $diffusion $ou émettent des événements de contrôleur (dépend de l'endroit où la directive est, ou dans le champ d'application de contrôleur) après votre ajax se termine et vous obtenez le contenu à partir du serveur. Ensuite, la directive devrait être abonné à cet événement et de les traiter en recevant passé de données (data=contenu sous forme de chaîne) et faire le reste comme je vous ai montré ci-dessus.
La chose est, la menace que le contenu de l'ajax comme les données de toutes les façon il s'agit de la directive, puis à l'injecter à l'élément dans lequel vous souhaitez vous rendre et de les appliquer arbre plugin pour que le contenu.
Je pense que je sais enfin ce que votre application est en train de faire, vérifier la mise à jour dans ma réponse
Merci pour la réponse détaillée de Milan. Cela m'a donné une solution complète à mon problème.Appris beaucoup de choses que je peux faire à l'aide Angulaire par ce biais.
OriginalL'auteur Milan Jaric