0
Я перешел от использования ngRoute к ui-router. Я пытаюсь разрешить фабричный вызов в маршруте для использования в контроллере, но он не определен при выводе на консоль. Вот Фабрика:Угловое решение 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. Хотя я мог ошибаться. –
Вот и все. Это был возврат $ http.get, это было неправильно. Благодарю. – AngularBoy