2017-10-17 2 views
0

Compte tenu de la directive suivante:Modification de la fonction directive dynamique

app.directive("myDirective", function() { 
      return { 
      restrict: "AE",   
      scope: {    
       myFunction: '&' 
      }, 

      templateUrl: "some_template.html", 
      link: function (scope, element) { 
      } 
     } 
    }); 

Je déclare comme

<my-directive my-function="function1()"></my-directive> 

Mais mon problème est que dans le contrôleur que je dois appeler function1 ou function2 en fonction d'une condition. Y at-il un moyen de modifier dynamiquement la fonction dans l'attribut my-function?

Répondre

1

Oui, situé juste à une variable à la place qui fait référence à une fonction ou l'autre:

<my-directive my-function="functionToCall()"></my-directive> 

Cette functionToCall peut être modifié de manière dynamique que vous avez besoin:

<button type="button" ng-click="functionToCall = function1">Switch to function 1</button> 
<button type="button" ng-click="functionToCall = function2">Switch to function 2</button> 

Vérifiez this Plunker pour un travail Exemple.