2017-10-17 57 views
0

考慮以下指令:更改指示功能動態

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

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

我宣佈它作爲

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

但我的問題是,在控制器我需要根據條件function1function2打電話。有沒有辦法動態改變my-function屬性中的功能?

回答

1

是的,只需將其設置爲某個變量,而不是引用一個函數或其他:

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

functionToCall可以動態改變,因爲你需要:

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

檢查this Plunker的工作例。