2013-06-06 6 views
9

私は4から10個の$ http呼び出しを並行して呼び出します。しかし、ユーザーの検索操作の後、私は同じ結果を表示するが同じ結果を表示する必要がある。私はデータセットと新しい$ httpクエリ呼び出しを設定します。しかし、以前の$ http呼び出し(約束事)は、依然として投入されているか、または実行中であり、$ scopeに影響を与えています。

マイ可能ダーティ液は、動的なアプリケーションによって制御される動的領域を有することができるマルチアプリ(マルチモジュール)ページを使用して..

あります。ユーザーイベントでは、イベントに対応する要素を削除します。異なる$ http呼び出しを使用して異なるソースからの結果を表示したい場合の検索結果の例です。ユーザーが新しいキーワードで検索する場合は、結果のng-app要素を削除し、新しい要素をブートストラップします。

答えて

26

あなたは$のHTTPリクエストをキャンセルする機能を持っていたバージョン1.1.5を使用してください:

https://github.com/angular/angular.js/blob/master/CHANGELOG.md

// set up a dummy canceler 
var canceler = $q.defer(); 

// use it as a timeout canceler for the request 
$http({method: 'GET', url: '/some', timeout: canceler.promise}).success(
    function (data) { alert("this won't be displayed on cancel"); } 
).error(
    function (data) { alert("this will be displayed on cancel"); } 
) 

// now, cancel it (before it may come back with data) 
$rootScope.$apply(function() { 
    canceler.resolve(); 
}); 

あなたはすべての要求に対して同じキャンセラーを使用して、直前にそれを解決することができます新しいセットを開始する。

+1

これは私が探しているものです。あなたの更新をありがとう。 –

+0

私もtoo-link for 1.1.5 CHANGELOGはhttps://github.com/angular/angular.js/commit/5cc9837d931dfb2d374bef24688888e0c52c75d1 – Phantomwhale

+0

です。これには再利用可能なパターンがありますか?私は、結果がフェッチされた後に起こる処理を取り消したいと思います。 – user239558

関連する問題