Передача метода из директивы в фабрику
Я пытаюсь передать метод, который определен в контроллере, через директиву к фабрике. Кажется, я не в состоянии полностью понять сферу охвата или лучший способ сделать это.
HTML:
<div ng-controller="testController as tc">
<h1>Testing from directive -> factory</h1>
<test-directive todo="doSomething()"> </test-directive>
<button ng-click="tc.executeSomething()">DO IT!</button>
</div>
JavaScript:
var app = angular.module('testApp',[]);
app.controller('testController',[
'testFactory',
function(testFactory){
var self = this;
$scope.doSomething = function(){
alert('success!');
}
self.executeSomething = testFactory.delegate();
}]);
app.directive('testDirective',['testFactory'
function(testFactory){
return {
restrict: 'E',
scope: { todo = '&' },
link: function(scope, elem, attr){
if(attr.todo){
testFactory.delegate = scope.todo;
}
}
}
}]);
app.factory('testFactory',[
function(){
return {
delegate: function();
}
}]);