약속에서 객체 배열을 가져 오는 데 문제가 있습니다. 두 가지 문제가 있습니다. 먼저 GetAccounts()
이 AccountService
에서 호출되면 2 개의 객체를 반환합니다. 해결, 변수 결과를 확인할 때 2 개체가 없습니다. 둘째, 컨트롤러가 인스턴스화되면이 오류 메시지가 표시됩니다. 계정이 정의되지 않았습니다.. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 미리 감사드립니다.
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;
}
})
RO
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;
}]
}
})
}]);
당신은 실제로 API를 만들었습니다? – floor
[ngRoute를 사용하여 구성 요소 컨트롤러에 서비스 연결 문제 해결] (http://stackoverflow.com/questions/43242296/issue-with-ngroute-injecting-resolve-services-into-component-controller)의 가능한 복제본. – georgeawg
'GetAccounts' 함수는 거부 된 약속을 ** 성공적인 약속으로 ** 변환하는 ** 것이라는 점에 유의하십시오. [$ q를 가진 각도 실행 명령] (http://stackoverflow.com/questions/34324153/angular-execution-order-with-q/34326388#34326388) - georgeawg – georgeawg