반응형
AngularJS $resource 오류 - TypeError: 개체 #에 'push' 메서드가 없습니다 .
제 컨트롤러 파일에는 다음과 같은 내용이 있습니다.
var Subject = $resource('/api/TestAccounts/:action', { applicationId: 3 }, {
'getSelect': { method: 'GET', params: { action: 'GetSelect' } }
});
Subject.getSelect({ applicationId: 3 },
function (resp) {
$scope.testAccounts = resp;
gridData = null;
}
);
내 서버 코드가 실행되고 반환됩니다.
[{"id":5,"name":"xxx"},{"id":6,"name":"yyy"}]
그러나 다음 오류가 발생합니다.
TypeError: Object #<g> has no method 'push'
at copy (http://127.0.0.1:81/Scripts/angular.js:577:21)
내가 뭘 잘못하고 있는지 아는 사람?
파라미터를 설정해야 합니다.isArray
서버에서 배열을 반환하는 경우 리소스 정의에서 true로 변경합니다.
var Subject = $resource('/api/TestAccounts/:action', { applicationId: 3 }, {
'getSelect': { method: 'GET', isArray: true, params: { action: 'GetSelect' } }
});
기본적으로 GET은 개체 {}을(를) 기대하고, QUREY는 배열[]을 기대합니다.사용자의 경우 Web API는 GET에 대한 배열을 반환하므로 GET에 대한 isArray 플래그를 true로 설정해야 합니다.웹 API가 개체를 반환한 경우 GET의 기본 동작이므로 해당 플래그를 재설정할 필요가 없습니다.
옷을 갈아입었습니다.MyService.get(...)
로.MyService.query(...)
왜냐면.get()
물건을 기대하고 그리고.query()
배열을 기대합니다.
이 게시물이 좀 진부한 것은 알지만 오늘 이 문제에 부딪히면서 해결책을 찾았습니다.아래 게시물에 따라 조엘위드의 솔루션을 구현했습니다(실의 절반 아래).푸시를 시도하기 전에 대상이 배열인지 확인하여 문제를 해결합니다.
언급URL : https://stackoverflow.com/questions/15932422/angularjs-resource-error-typeerror-object-g-has-no-method-push
반응형
'programing' 카테고리의 다른 글
워드프레스에서 포스트 타이틀을 얻는 방법? (0) | 2023.10.22 |
---|---|
$.get()에서 오류를 처리하는 방법 (0) | 2023.10.22 |
printf 형식 지정(%d 대 %u) (0) | 2023.10.22 |
워드프레스 크론은 wp_mail()을 발사하지 않고 php mail() 기능을 합니다. (0) | 2023.10.22 |
오라클 저장 프로시저 실행 시간이 실행 방식에 따라 크게 증가하는 이유는 무엇입니까? (0) | 2023.10.22 |