È possibile creare funzioni comuni che devono essere eseguiti su $ portata in un controller può essere chiamato 'CommonCtrl'
.
angular.module('app',[]).controller('CommonCtrl', ['$scope', function($scope){
var self = this;
$scope.stuff1 = function(){
}
$scope.stuff2 = function(){
}
self.doCommonStuff = function(){
// common stuff here
$scope.stuff1();
$scope.stuff2();
};
return self;
}]);
e iniettare questo controller in altri controller diciamo 'TestCtrl1' come
angular.module('app',[]).controller('TestCtrl1', ['$scope','$controller', function($scope, $controller){
var commonCtrl = $controller('CommonCtrl',{$scope: $scope}); // passing current scope to commmon controller
commonCtrl.doCommonStuff();
}]);
Qui, le dipendenze in secondo argomento del servizio di $ regolatore, stiamo passando che sono richiesti da CommonCtrl. Quindi il metodo doCommonStuff utilizzerà l'ambito del controllore TestCtrl1.
fonte
2015-01-09 19:49:07
Poiché non è possibile iniettare realmente il controller e se si desidera creare un'istanza di un controller ovunque sia necessario utilizzare il provider '$ controller'. Alcune informazioni [puoi trovare qui] (http://stackoverflow.com/questions/25417162/how-do-i-inject-a-controller-into-another-controller-in-angularjs/25417210#25417210) – PSL