У меня возникли проблемы с попыткой получить массив объектов из обещания. У меня две проблемы. Во-первых, когда GetAccounts()
вызывается в AccountService
, он возвращает 2 объекта. В решении, когда я проверяю результат переменной, у него нет двух объектов. Во-вторых, когда создается экземпляр контроллера, он выдает ошибку: accounts не определен. Может ли кто-нибудь сказать мне, что я делаю неправильно? Заранее спасибо.
AccountService.js
app.factory('AccountService', ['$http', function ($http) {
return {
GetAccounts: function () {
return $http.get('api/Account/GetAccounts')
.then(function success(response) {
return response.data;
}, function error(response) {
return console.log("Oops!");
});
}
};
}]);
AdminController.js
app.component('admin', {
templateUrl: 'Content/app/components/admin/Admin.html',
bindings: {
accounts: '<'
},
controller: function () {
this.accounts = accounts;
}
})
route.js
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/admin', {
template: '<admin accounts="$resolve.GetAccounts"></admin>',
resolve: {
GetAccounts: ['AccountService', function (AccountService) {
var result = AccountService.GetAccounts();
return result;
}]
}
})
}]);
GetAccounts
преобразует отклоненное обещание в успешное обещание. См. порядок выполнения Angular с $q — georgeawg - person georgeawg   schedule 06.04.2017