2013-07-07 11 views
9

ottengo TypeError: Cannot call method 'get' of undefined durante l'esecuzione di questo modulo:

angular.module('EventList', []) 

.config([ '$routeProvider', function config($routeProvider){ 
    $routeProvider.when(Urls.EVENT_LIST_PAGE, { 
     templateUrl: 'app/EventList/event-list.html', 
     controller: 'EventListCtrl' 
     }); 
}]) 


.controller('EventListCtrl', ['$scope', '$http', function EventListController($scope, $location, $http) { 
    $scope.events = []; 
    $http.get('http://localhost:8000/event'). 
    success(function (data, status) { 
     $scope.events = data; 
     for (var i = 0; i < $scope.events.length; i++) { 
     $scope.events[i].event_url = ('#' + Urls.EVENT_PAGE + '/' + $scope.events[i]._id); 
     } 
    }). 
    error(function (data, status) { 
     $scope.data = data || "Request failed"; 
    } 
); 

}]); 

Che cosa sto facendo male qui e come posso risolvere il problema?

risposta

18

Quando si utilizza la notazione della parentesi, l'elenco delle dipendenze prima della funzione deve corrispondere ai servizi immessi nella funzione.

si dispone di un ulteriore $location servizio nella funzione EventsListController in modo da cambiare questa:

.controller('EventListCtrl', ['$scope', '$http', function EventListController($scope, $location, $http) { 
// controller code goes here 
}]); 

a questo:

.controller('EventListCtrl', ['$scope', '$http', function EventListController($scope, $http) { 
// controller code goes here 
}]); 

La chiave cambiamento dell'essere: function EventListController($scope, $http) invece di function EventListController($scope, $location, $http)

+0

Vorrei potrebbe invertire questa risposta due volte! Questa non era la mia causa esatta, ma aiutata. Il mio editor non è riuscito ad aggiornare il mio file .min, che è utilizzato solo in produzione, quindi ho passato un po 'di tempo a cercare di capire perché la mia distribuzione ha interrotto la produzione e nessun altro ambiente. Grazie per aver salvato il mio weekend! –

Problemi correlati