2014-02-14 2 views
1

링크에서 다른 컨트롤러의 함수를 호출해야합니다.AngularJS는 링크에서 다른 컨트롤러의 함수를 호출합니다.

이제 컨트롤러 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

당신은 그 서비스를 이용해야합니다 – karaxuna

+0

어떻게하는지 설명해 주시겠습니까 ?? –

답변

2

두 가지 옵션이 있습니다.

가장 "올바른 방법"은 작업을 수행 할 서비스를 사용하고이 서비스를 AggiornaCtrl 및 DashboardCtrl에 모두 주입하는 것입니다. AngularJS를 처음 사용하는 분은 the official docs을 읽으십시오.

다른 옵션은 this blog post에 설명 된 것처럼 컨트롤러 상속을 사용하여 두 컨트롤러의 부모가 될 공통 컨트롤러를 만드는 것입니다. 그것은 "일을하는 공식적인 방법"보다 트릭이지만,이 해킹은 지금까지 나에게 매우 유용하다는 것이 입증되었습니다.

관련 문제