AngularJS从链接调用另一个控制器中的函数

时间:2014-02-14 11:00:08

标签: function angularjs call

我需要通过链接调用另一个控制器中的函数。

现在我在控制器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
    }
}]);

1 个答案:

答案 0 :(得分:2)

这里有两个选择。

最“正确的方法”是使用可以完成工作的服务,并在AggiornaCtrl和DashboardCtrl中注入此服务。如果您是AngularJS的新手,您可能需要阅读the official docs以了解如何操作。

另一种选择是使用控制器继承来创建一个将成为两个Controller的父控制器的公共控制器,如this blog post中所述。这不仅仅是一种“官方的做事方式”,但到目前为止,这种黑客已被证明对我非常有用。