2013-07-01 34 views
5

Açısal JS 1.1.5'de daha önce başlatılmış $ http çağrılarını iptal edebilirsiniz. Bu iki link1 ve link2, nasıl çalıştığına dair bazı açıklamalar verir.

Ancak bunu pratikte nasıl kullanacağımı anlayamıyorum. Neyi başarmak istediğimi göstermek için plnkr'u oluşturdum.

  1. Kullanıcı o kullanıcı bağlantıyı tıkladığında ve önceki isteği henüz bitmiş değil varsa
  2. (bildiğimiz gibi, kullanıcıların çok tutkuyla yapmak eğilimindedir) tıklayabilirsiniz bir bağlantı vardır, bu iptal edilmeli ve yeni bir istek yapılmalıdır (bu örnekte birden fazla tıklamayı görmezden gelmenin başka yolları vardır. Orijinal sorun, üzerinde ng-change ile kullanıcı giriş alanıdır - kullanıcı her değeri değiştirdiğinde istek alınır - her bir tuşa basma $ http. Bunu biraz daha basit yapmak için bağlantıyı kullanma)

plnkr numaralı telefondan da görebileceğiniz gibi yangınları hemen talep ederseniz, Son isteğin başarılı olması.

Angularjs'ye yeni geldim, muhtemelen yanlış yapıyorum. Hayal edebileceğim her şeyi ben yaptım, ama canceler.resolve()

için tam örnek yok. Bu konuda bana yardımcı olabilecek veya doğru yönde bana rehberlik edebilecek biri var mı?

cevap

10

Her istek için yeni bir iptalci oluşturmanız gerekir, çünkü çözümlendikten sonra tekrar kullanılamaz.

See here for an updated plnkr.

+0

Bingo! Benimkini yeniden kullanıyordum. Bu yüzden çalışmıyordu. –