Angular의 $httpBackend에서 파일 내용을 반환하는 방법은 무엇입니까?
저는 e2e 테스트 스위트를 각도로 설정하려고 하는데 $httpBackend를 사용하여 캔에 담긴 응답을 반환해야 합니다.예를 들어 파일 내용을 그냥 돌려주면 좋을 것 같습니다.
$httpBackend.whenPOST('/phones').respond(function(method, url, data) {
return getContentOf("/somefile");
});
나는 $http를 사용하려고 노력했습니다. 그 어떤 것은.
$httpBackend.whenPOST('/phones').respond(function(method, url, data) {
return $http.get("/responses/phones.js");
});
하지만 효과가 없었어요, 각도는 $httpBackend에서 약속을 돌려주는 것을 지원하지 않나요?
앱 로드 시 응답이 있는 js 파일을 참조하여 파일의 내용을 변수에 할당하는 것도 방법이지만, 필요에 따라 데이터를 로드할 수 있으면 훨씬 더 좋을 것 같습니다.
$httpBackend는 반환된 약속과 함께 작동하지 않으므로 데이터를 동기화하여 가져올 수 있습니다.$http은 즉시 동기화 옵션이 없으므로, 다음과 같은 방법으로 파일을 호출해야 합니다.
$httpBackend.whenPOST('/phones').respond(function(method, url, data) {
var request = new XMLHttpRequest();
request.open('GET', '/responses/phones.js', false);
request.send(null);
return [request.status, request.response, {}];
});
제가 해결한 문제는 다음과 같습니다.
$httpBackend.whenPOST("some/url").respond(function(method, url, data) {
return $resource("path/to/your/json/file.json").get();
});
이것은 분명히 필요합니다.angular-resource
모듈이 작동합니다.
$httpBackend.Post가 requestHandler 개체를 반환할 때.
공식 문서에 따르면:
requestHandler
(is) 가 있는 물건respond
일치된 요청이 처리되는 방법을 제어하는 메소드입니다.
- 응답 –
{function([status,] data[, headers, statusText]) | function(function(method, url, data, headers)}
– 응답 메서드는 반환할 정적 데이터 집합을 사용하거나 응답 상태(숫자), 응답 데이터( 문자열), 응답 헤더(Object) 및 상태( 문자열)의 텍스트를 포함하는 배열을 반환할 수 있는 함수를 사용합니다.
출처: 각진 문서
응답 메서드는 반환할 정적 데이터 집합을 사용하거나 응답 상태(숫자), 응답 데이터( 문자열) 및 응답 헤더(Object)가 포함된 배열을 반환할 수 있는 함수를 사용합니다.
그래서, 당신은 다음과 같은 일을 해야 합니다.
var response = 'content of somefile.js';
// OR var response = { foo : "bar" };
// OR var response = (actually consume content of somefile.js and set to response)
$httpBackend.whenPost('/phones').respond(response);
언급URL : https://stackoverflow.com/questions/21057477/how-to-return-a-file-content-from-angulars-httpbackend
'programing' 카테고리의 다른 글
jquery 스크립트에서 JSON 응답을 변수로 가져오는 방법 (0) | 2023.10.22 |
---|---|
XmlDocument를 사용하여 XML 특성 읽기 (0) | 2023.10.22 |
git 하위 모듈을 하위 폴더를 가리키도록 변경하는 방법은? (0) | 2023.10.22 |
Oracle 11g에서 여러 데이터베이스를 생성하고 액세스하려면 어떻게 해야 합니까? (0) | 2023.10.22 |
Dynamically populate an ACF field (radio) on a multisite install (0) | 2023.10.17 |