动态更改指令功能

时间:2017-10-17 23:52:00

标签: angularjs

给出以下指令:

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 个答案:

答案 0 :(得分: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是否有工作示例。