2013-06-06 17 views
9

4 ila 10 $ http arayabağlı aramaları arıyorum. Ancak, kullanıcı arama işleminden sonra, aynı görünüme ancak farklı sonuçlarla gösterilmeye ihtiyacım var. Veri kümesini ve yeni $ http sorgu çağrılarını dolduruyorum. Ancak önceki $ http saldırıları (vaatler) hala dolar veya etkiyi etkiliyor. Çok app (multimodule) dinamik bir uygulama tarafından kontrol edilen dinamik bölgeleri olabilir sayfasını kullanma

My olası kirli bir çözümdür ..

. Kullanıcı olaylarında, olaya karşılık gelen elemanı kaldırın. Örneğin, farklı bir sonuçtan farklı $ http aramalarını kullanarak sonuçları görüntülemek istersem, arama sonucu. Kullanıcı yeni anahtar kelimeyle arama yaparsa, sonuç ng-app öğesini ve yeni öğe önyüklemesini kaldıracağım.

cevap

26

Sen $ http isteklerini iptal etme yeteneğine sahiptir sürüm 1.1.5, kullanmalısınız:

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(); 
}); 

tüm istekleri için aynı canceller kullanın ve hemen önce onu çözebilirsiniz yeni seti başlatıyor.

+1

Tam olarak aradığım şey bu. Teşekkürler güncellemelerin için. –

+0

Bende - 1.1.5 için bağlantı CHANGELOG is https://github.com/angular/angular.js/commit/5cc9837d931dfb2d374bef24688888e0c52c75d1 – Phantomwhale

+0

Bunun için yeniden kullanılabilir bir model var mı? Sonuç alındıktan sonra gerçekleşen işlemeyi iptal etmek istiyorum. – user239558

İlgili konular