2013-07-07 24 views
9

tôi nhận được TypeError: Cannot call method 'get' of undefined khi chạy mô-đun này:

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"; 
    } 
); 

}]); 

Tôi đang làm gì sai ở đây và làm thế nào tôi có thể sửa chữa nó?

Trả lời

18

Khi sử dụng ký hiệu khung, danh sách phụ thuộc trước khi hàm cần khớp với các dịch vụ được đưa vào hàm.

Bạn có một $location dịch vụ thêm chức năng EventsListController của bạn để thay đổi điều này:

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

này:

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

Sự thay đổi chính con người: function EventListController($scope, $http) thay vì function EventListController($scope, $location, $http)

+0

Tôi ước gì có thể upvote câu trả lời này hai lần! Đây không phải là nguyên nhân chính xác của tôi, nhưng đã giúp. Trình soạn thảo của tôi không cập nhật được tệp .min của tôi, tệp này chỉ được sử dụng trong sản xuất, vì vậy tôi đã dành khá nhiều thời gian để tìm hiểu lý do triển khai của tôi đã phá sản xuất và không có môi trường nào khác. Cảm ơn bạn đã cứu cuối tuần! –

Các vấn đề liên quan