angular.js:13708 TypeError: reservationService.getPendingReservations is not a functionTypeError:reservationService.getPendingReservations不是函數
當我第一次加載頁面時,我得到這個錯誤,但給F5的頁面,加載順利。
下面我顯示我的代碼。我找不到錯誤。我一直在檢查一些論壇,表明它可能與依賴注入有關,但仍然無法找到錯誤。我做了一個測試,我意識到當第一次加載頁面時,工廠是未初始化的,如果這與此無關。
homeController.js
'use strict';
app.controller('homeController', ['$scope', '$route', '$location', 'authService', 'reservationService', 'localStorageService',
function ($scope, $route, $location, authService, reservationService, localStorageService) {
$scope.showNotifications = function() {
updateNotifications();
$("#notificationContainer").fadeToggle(600);
//hideCountNotifications();
}
function updateNotifications() {
reservationService.getPendingReservations(authData.id_place).then(function (results) {
if (results.status != 200) {
$scope.message = "Upps! Lo siento, creo que tenemos un problema al cargar las notificaciones.";
console.log(results);
}
else {
$scope.notifications = results.data;
$scope.cantPendingReservations = results.data.length;
//// La primera vez que carga la pagina se llamada el metodo para que recargue la grilla
//reloadGrid();
}
//$scope.$emit('UNLOAD')
//$("#tableScheduler").show();
}, function (error) {
if (error.status == 401) { authService.logOut(); $location.path('/login'); }
});
}
}]);
reservationService.js
'use strict';
app.factory('reservationService', ['$http', '$q', 'localStorageService', 'servicesConnect', function ($http, $q, localStorageService, servicesConnect) {
var serviceBase = servicesConnect.apiFutbolPlay;
var reservationService = {};
var authData = localStorageService.get('authorizationData');
if (authData) {
var _ListPitch = function (id_place) {
var deferred = $q.defer();
$http.get(serviceBase + 'api/pitches/single/' + id_place).then(function (results) {
deferred.resolve(results);
}, function errorCallback(err, status) {
deferred.reject(err);
});
return deferred.promise;
}
var _ListPendingReservations = function (id_place) {
var deferred = $q.defer();
$http.get(serviceBase + 'api/reservations/customer/myreservations/' + id_place, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then(function (results) {
deferred.resolve(results);
}, function errorCallback(err, status) {
deferred.reject(err);
});
return deferred.promise;
}
reservationService.getPendingReservations = _ListPendingReservations;
}
return reservationService;
}]);
的index.html
<!DOCTYPE html>
<html data-ng-app="FutPlayApp">
<head>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="images/favicon/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<div class="container" data-ng-controller="homeController">
<div data-ng-view="">
</div>
<div class="clearfix"></div>
</div>
<!-- Jquery -->
<script src="scripts/jquery-2.2.4.min.js"></script>
<!-- Bootstrap -->
<script src="scripts/bootstrap.min.js"></script>
<!-- Load Angular -->
<script src="scripts/angular.min.js"></script>
<script src="scripts/angular-route.min.js"></script>
<script src="scripts/loading-bar.min.js"></script>
<script src="scripts/angular-local-storage.min.js"></script>
<script src="scripts/moment.js"></script>
<script src="scripts/moment-timezone-with-data.js"></script>
<script src="scripts/datetimepicker.js"></script>
<script src="scripts/datetimepicker.templates.js"></script>
<script src="scripts/dateTimeInput.js"></script>
<!--Autocompletado-->
<script src="scripts/angucomplete-alt.js"></script>
<!-- Load app main script -->
<script src="app/app.js"></script>
<!-- Notificaciones de reservas de usuario -->
<script type="text/javascript" src="scripts/pnotify.custom.min.js"></script>
<!-- Load services -->
<script src="app/services/authInterceptorService.js"></script>
<script src="app/services/authService.js"></script>
<script src="app/services/reservationService.js"></script>
<script src="app/services/schedulerService.js"></script>
<script src="app/services/profileService.js"></script>
<script src="app/services/changepasswordService.js"></script>
<script src="app/services/reservationmultipleService.js"></script>
<!-- Load controllers -->
<script src="app/controllers/loginController.js"></script>
<script src="app/controllers/reservationController.js"></script>
<script src="app/controllers/homeController.js"></script>
<script src="app/controllers/schedulerController.js"></script>
<script src="app/controllers/profileController.js"></script>
<script src="app/controllers/changepasswordController.js"></script>
<script src="app/controllers/reservationmultipleController.js"></script>
</body>
</html>
馬特,的確,非常感謝!你很友好。 – Al3mor
我想感謝你的回答,但我沒有最低15分這樣做。但我運行你的解決方案。來自哥倫比亞的問候。 – Al3mor
您應該能夠將其標記爲正確。 –