AngularJS - Actualisation de la Directive à partir du contrôleur.
j'ai une directive qui incluent un fichier HTML basé sur une étendue variable.
Quand le HTML est chargé première fois, l'ensemble est bon. Mais lorsque la portée changement de variable par ng-clic, je ne suis pas capable de se souvenir de la directive.
Voici mon directive:
my.directive('myType', function() {
return {
restrict: 'A',
replace: true,
link: function($scope, element, attrs) {
var myHTML;
if ($scope.aType==1) myHTML = "aaaa";
if ($scope.aType==2) myHTML = "bbbb";
$scope.contentUrl = 'library/template/tmp-' + myHTML + '.html';
},
template: '<div ng-include="contentUrl"></div>'
}});
$champ d'application.aType est la portée de la variable qui changent sur ng-click.
Merci à l'avance.
OriginalL'auteur user1683405 | 2015-04-21
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'ajouter un
watch
sur aType ou un type d'événement pour vous faire code exécuté plus d'une fois(sur le lien):quelque chose comme ceci:
JSFIDDLE.
J'ai édité et Ajouter un JSFIDDLE.
Il fonctionne! Merci
OriginalL'auteur Amir Popovich
Je voudrais éviter d'utiliser $watch() si vous le pouvez, vous peut presque toujours.
Vous pouvez toujours l'installation ng-cliquez pour passer des variables à partir de votre directive à votre contrôleur, ou modifier @Amir Popovich, en réponse à faire de la logique dans votre contrôleur, et non pas dans la fonction de lien.
Pour un exemple sur la façon de méthodes d'accès dans une directive à partir d'un contrôleur de départ: L'accès parent méthodes de contrôleur de la directive?
OriginalL'auteur Fred