I have a directive defined that contains a function binding:
angular .module('my.module') .directive("myDirective", [ function () { return { controller: 'MyDirectiveController', templateUrl: 'controls/myDirective/myDirective.html', replace: true, restrict: 'E', scope: { openFunction: '&' } }; }]); in my source html, I'm defining the directive like so:
<my-directive open-function="openDrawer(open)" </my-directive> Then, in my directive controller, I'm calling it like this:
$scope.openFunction({ open: function() { doSomething() .then(function () {...}) .finally(function () {...}); } }); And here's the parent controller openDrawer function:
$scope.openDrawer = function (open) { $scope.alerts = null; $scope.showActions = false; if (service.editing) { service.closeAndSave(); openDrawerAfterDelay(open); } else if (otherService.editing) { otherService.commit(); openDrawerAfterDelay(open); } else { open(); } }; The problem is, when my directive controller calls the $scope.openFunction() function, nothing happens. Am I able to pass a function, to the bound function like this?