.les parents() dans Angulaire?
Est-il un moyen que je pouvais imiter jQuery .parents()
méthode Angulaire, sans avoir à inclure jQuery?
L'objectif final est d'obtenir tous les parents d'un élément du DOM.
EDIT: Pourquoi ai-je besoin?
Je suis de la création d'une directive (une liste déroulante comme widget). La liste déroulante doit écouter l'intégralité de l' <body>
pour les clics et fermer lui-même (si elle est ouverte) si un clic est effectué en dehors du widget.
Maintenant, je sais comment créer une simple directive qui permettrait d'écouter les événements de souris, comme celui-ci:
app.directive('mouseTrap', function() {
return function(scope, elem) {
elem.bind('click', function(event) {
scope.$broadcast('click', { event: event } );
});
};
});
...dont je ne puis l'utiliser comme ceci: <body mouse-trap .... >
et
$scope.$on('click', function(msg, obj) {
console.log("click!");
});
C'est là que j'ai besoin de vérifier si l'un des parents de l'objet cliqué est le niveau supérieur de la div de mon widget, et si pas, fermez le widget.
Mais ne jqLite soutien
.parents()
méthode? Je ne le vois pas dans la DOCVeuillez voir modifier.
il me semble que vous devez commencer à penser à pas dans jQuerym mais angulaire, essayez de voir this
OriginalL'auteur alexandernst | 2015-05-25
Vous devez vous connecter pour publier un commentaire.
EDIT: Bien que cette réponse a été accepté, il n'est pas correct. Voir les commentaires et les meilleures réponses ci-dessous.
Il ne ressemble à jQLite prend en charge ce déjà le cas si vous utilisez angulaire, vous devriez être en mesure de le faire sans tirer en JQuery lui-même.
De la documentation ici:
});
vous avez raison! Je vais modifier ma réponse et essayer de les supprimer. Pas sûr de savoir comment vous êtes censé gérer quelque chose comme ça. Merci pour le commentaire.
OriginalL'auteur Ruairi O'Brien
Angulaire du jqLite prend en charge
parent()
méthode, de sorte que vous pouvez obtenir tous les parents dans une boucle comme ceci:OriginalL'auteur Bolesław Chrobry
Je ne suis pas certain que vous voudriez être à l'aide de DOM parent références lorsque vous essayez d'interface Angulaire des contrôleurs. Mais ne sachant pas quel est votre objectif, les méthodes standard .parentNode, est ce que vous cherchez. Ensuite, vous auriez à boucle jusqu'à ce que vous frappez corps, ou html, ou la valeur null. Donc, si vous voulez javascript natif:
Je suis aussi paranoïaque de la boucle while. Donc, la tendance serait à envelopper tout ça dans une fonction, et mettre une soupape de sécurité pour laissez-moi savoir ce qu'il se passe, en cas de crazyness dans mon code ou dans les DOM, alors j'aimerais obtenir une erreur de nettoyage, au lieu de fermer le navigateur.
OriginalL'auteur Cooper Buckingham
Angularjs comprend jqLite qui contient certaines des fonctions jQuery. plus de détails ici: https://docs.angularjs.org/api/ng/function/angular.element
Comme indiqué dans le site, il comprend
La fonction est similaire à la jQuery parent() la fonction mais ne prendra pas de sélecteurs, de sorte que vous ne serez pas en mesure de filtre à l'aide du sélecteur.
À partir du jQuery documentation:
Si courte réponse: non il ne marche pas.
Mais cela donne un petit sous-ensemble.
OriginalL'auteur suvartheec