AngularJS - Wie man ein Versprechen annulliert? [Duplikat]

8

Nehmen wir an, ich habe ein Eingabe-Textfeld (eher wie das Google-Suchfeld), das bei Änderung eine Anfrage auslöst und Ergebnisse anzeigt.

Zum Beispiel

Geben wir Dog in die Eingabe ein:

%Vor%

Nehmen wir nun an, dass die Anfrage DO später antwortet als DOG one. Mein Modell würde mit den DO Ergebnissen enden, selbst wenn ich DOG eingegeben hätte.

Dafür brauche ich eine Möglichkeit, laufende laufende Anfragen abzubrechen oder abzubrechen, wenn ich weiter Buchstaben schreibe. Auf diese Weise wird mein Modell nur durch die letzte Anfrage geändert.

Meine Eingabe sieht folgendermaßen aus:

%Vor%

Hier ist mein searchCtrl.js :

%Vor%     
Matias Cicero 03.11.2015, 18:49
quelle

3 Antworten

4

Normalerweise wird in diesem Fall ng-model-options={debounce: 100} verwendet.

Ссылка

trotzdem können Sie Versprechen verweigern.

    
Errorpro 03.11.2015, 18:56
quelle
1

Ich denke, dass Sie in diesem Fall eine debounce -Technik verwenden möchten?

siehe:

house9 03.11.2015 18:59
quelle
0

So: $q.reject(response);

Obwohl ich technisch glaube, dass der obige Kommentar korrekt ist, lehnen Sie das Versprechen tatsächlich ab und löschen es nicht wirklich.

    
Andrew Cavanagh 03.11.2015 18:50
quelle