0
我已經從使用ngRoute轉移到ui-router。我試圖解決在控制器中使用的路由中的Factory調用,但在輸出到控制檯時未定義。這裏是工廠:AngularJS ui-router解析未定義
'use strict';
angular.module('angular10App')
.factory('AirportService', function ($http) {
return {
getAirports: function() {
var airports = $http.get('../json/airports.json')
.then(function (response) {
console.log(response.data); //Outputs an array of objects
return response.data;
});
}
});
這裏是路線:
'use strict';
angular.module('angular10App')
.config(function ($stateProvider) {
$stateProvider
.state('selectFlights', {
url: '/select_flights',
templateUrl: 'app/selectFlights/selectFlights.html',
controller: 'SelectFlightsCtrl',
resolve: {
AirportService: 'AirportService',
airports: function (AirportService) {
return AirportService.getAirports();
}
},
});
});
,這裏是控制器:
'use strict';
angular.module('angular10App')
.controller('SelectFlightsCtrl', function ($scope, airports) {
$scope.selectedAirport = null;
$scope.airports = airports;
console.log($scope.airports); //undefined
});
還未定義! – AngularBoy
對不起,我沒有太注意getAirports函數,因爲Resolve塊看起來很奇怪。在我看來,你正在返回一個正在創建一個變量的函數,但實際上並沒有返回$ http promise。雖然我可能是錯的。 –
就是這樣。這是返回$ http.get,這是錯誤的。謝謝。 – AngularBoy