Utilisation Angulaire attributs de Directive dans son modèle
Comment puis-je utiliser la valeur d'un attribut dans une directive? Mon élément ressemble à ceci:
<div class="tooltip-icon"
data-my-tooltip="click"
data-tooltip-title="foo"
data-tooltip-content="test content"></div>
Je voudrais l'utiliser que dans le modèle de mon directive, qui ressemble à ceci:
mainApp.directive('myTooltip',
function() {
//allowed event listeners
var allowedListeners = ["click"];
return {
restrict: 'A',
template: '<div class="tooltip-title">...</div>' +
'<div class="tooltip-content">' +
'...</div>',
link: function(scope, elm, attrs) {
if(allowedListeners.indexOf(attrs.myTooltip) != -1){
elm.bind(attrs.myTooltip, function(){
...
});
}
}
};
}
);
Où le triple des points, il devrait y avoir de code, mais je ne peux pas comprendre comment obtenir le contenu de la attrs objet (attrs.tooltipTitle
, etc) dans ce modèle.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tirer sur les attributs et les placer dans le champ d'application de la directive comme ceci:
Ici est le violon: http://jsfiddle.net/moderndegree/f3JL3/
Cette question a déjà été répondu, mais je vais partager mon Angulaire code aswell, comme c'est un domaine où il est souvent utile de voir quelques exemples de travail.
J'ai un peu de pages, chacune avec leur propre Angulaire contrôleur, et je voulais un moyen d'avoir un "Veuillez Patienter" popup sur chaque page, ce qui apparaît lorsque l'une des pages appelé un HTTP GET ou POST service web.
Pour ce faire, chacune de mes pages web contient cette ligne:
...qui est lié à un
$scope
dans la page de contrôleur...Voici le code de mon
<please-wait>
directive:Remarquez comment elle prend la
message
attribut ({{LoadingMessage}}
dans cet exemple) et d'afficher sa valeur dans la directive du modèle.(Qui est en fait la seule partie de ma réponse qui répond directement à cette question, mais à lire, pour un peu plus de conseils n'tricks...)
Maintenant, la partie la plus cool, c'est que chacun de mes contrôleurs appels Angulaire de service de données chaque fois qu'il souhaite charger ou d'enregistrer des données à partir d'un service web.
La
dsLoadAllSurveys
fonction ressemble à...Et, surtout, tous les "GET" appels de service web via la fonction suivante, qui affiche le s'il vous Plaît Attendre de contrôle pour nous... pour ensuite s'en aller, lorsque le service est terminé.
Ce que j'aime à propos de ce code est que cette fonction s'occupe de l'affichage/masquage de la "Veuillez patienter" popup, et si une erreur se produit, il semble également après l'affichage du message d'erreur (à l'aide de l'excellent BootstrapDialog bibliothèque), avant de retourner le résultat de l'erreur à l'appelant.
Sans cette usine de la fonction, chaque fois que l'un de mes Angulaire contrôleurs pourrait appeler un service web, il serait nécessaire de montrer, ou alors de le cacher, le "Veuillez patienter" de contrôle et de vérification des erreurs.
Maintenant, je peux juste appeler mon service web, et de laisser il pour informer l'utilisateur si quelque chose va mal, sinon je peux supposer que c'est tout a fonctionné, et de traiter les résultats.
Cela me permet d'avoir un code bien plus simple. Rappelez-vous comment j'ai appelé le service web:
Que le code semble comme si elle n'effectue pas de gestion d'erreur, alors qu'en fait, c'est tout entretenu derrière les scènes dans un seul endroit.
Je suis encore en train de les accrocher des usines et des services de données Angulaire, mais je pense que c'est un stonking exemple de la façon dont ils peuvent aider.
Espérons que cela a du sens, et de l'aide.