2016-08-31 2 views
0

텍스트 상자에 입력 한 검색 매개 변수에 대한 웹 서비스를 통해 데이터를 가져와야한다는 요구 사항이 있습니다. 현재 그것은 debounceng-model-options에 잘 작동하고 내가 지정한 시간 후에 요청을 발생시킵니다.debounce로 이전 변경 요청 취소

새로운 불이 나면 자동으로 이전 불완전 요청을 각도로 취소하지 않습니다.

그렇지 않은 경우, 키를 누를 때마다 지정된 시간이 지나면 요청을 처리하는 방법을 어떻게 처리해야합니까?

html로는

<input type="text" class="form-control" name="inpTeachers" ng-model="inpTeachers" id="inpTeachers" autocomplete="off" required ng-change="GetTeachers(frmAddSubjectMain)" ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }" placeholder="Ex. Nancy Chang" /> 

입니다 그리고 방법 GetTeachers는 HTTP 요청 후 일부 범위 변수를 변경하는 단순한 방법이다.

또 다른 ng-change이 해고되면 이전 HTTP 요청을 취소해야합니까? 당신이 해고 요청을 종료 할 수 있습니다 경우

+0

게시 코드는 평상시처럼 도움이됩니다. 그러나 각도가 어떤 요청을 보내고 있는지 의심 스럽기 때문에 어떻게 취소 할 수 있는지 보지 못합니다. 코드를 게시하십시오. 너는 ... 시험해 볼 수도있다. –

+0

기존 코드가 제대로 작동하므로 코드를 게시하지 않았습니다. 나는 그것을 지금 할 것이다 – Saksham

+0

@JBNizet 이제 약간의 힌트를 얻을 수도있다 – Saksham

답변

0

, 당신은 그것을 number (밀리 초) 또는 Promise주는 http's config objecttimeout 속성을 사용할 수 있습니다. 당신이 (이 아직 완료되지 않은 경우) 진행중인 요청을 취소하고자 할 때마다 바로 전화

$http.get('/teachers', {timeout: canceler.promise}); 

:

function GetTeachers(frmAddSubjectMain){ 
    var canceler = $q.defer(); 
    yourService.retrieveTeachers(canceler).then(function() { 
     /* here is your result */ 
    }); 
} 

그리고 당신의 서비스에

, 당신은 뭔가를해야 할 수도 있습니다
canceler.resolve();