我需要通过链接调用另一个控制器中的函数。
现在我在控制器DashboardCtrl中,我需要调用控制器AggiornaCtrl中的函数aggiornaListamedici(),我怎么能从链接开始呢?
这是我现在的代码:
HTML
<div>
<a href="#/aggiorna" ng-click="aggiornaListamedici()">
<span ng-class="{button_download:true}"></span>
</a>
</div>
ROUTING
medicoFvgAppModule.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/aggiorna', {templateUrl: 'partials/dashboard.html', controller: 'AggiornaCtrl'});
$routeProvider.otherwise({redirectTo: '/dashboard'});
}])
CONTROLLER
medicoFvgAppControllers.controller('DashboardCtrl', ['$scope','$location','$rootScope',
function($scope,$location,$rootScope) {
// my controller dashboard
}]);
medicoFvgAppControllers.controller('AggiornaCtrl', ['$scope', '$rootScope','$http', '$timeout', function($scope, $rootScope, $http, $timeout) {
$scope.aggiornaListamedici = function(){
// my function
}
}]);
答案 0 :(得分:2)
这里有两个选择。
最“正确的方法”是使用可以完成工作的服务,并在AggiornaCtrl和DashboardCtrl中注入此服务。如果您是AngularJS的新手,您可能需要阅读the official docs以了解如何操作。
另一种选择是使用控制器继承来创建一个将成为两个Controller的父控制器的公共控制器,如this blog post中所述。这不仅仅是一种“官方的做事方式”,但到目前为止,这种黑客已被证明对我非常有用。