给出以下指令:
app.directive("myDirective", function() {
return {
restrict: "AE",
scope: {
myFunction: '&'
},
templateUrl: "some_template.html",
link: function (scope, element) {
}
}
});
我将其声明为
<my-directive my-function="function1()"></my-directive>
但我的问题是,在控制器中,我需要根据条件调用function1
或function2
。有没有办法动态更改my-function
属性中的函数?
答案 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是否有工作示例。