2013-07-01 77 views
5

在angular JS 1.1.5中,您可以取消以前啓動的$ http調用。這兩個link1link2給出了一些關於它是如何工作的解釋。

但我不明白,如何在實踐中使用它。我創建了plnkr來說明我想實現的目標。

  1. 用戶有一個鏈接,他可以點擊(因爲我們知道,用戶往往要做到這一點非常熱情地)
  2. 如果用戶點擊鏈接,和之前的請求尚未完成,它應該被取消,新的請求應該作出(在這個例子中,有其他方法可以忽略多個點擊)原始問題是用戶輸入字段,其中ng-change - 每當用戶更改值時發出請求 - 每個按鍵都會觸發$ http。使用鏈接,使其更簡單)

正如你可以看到在plnkr請求火災並立即取消,但我很期待最後的請求成功。

我是新來的angularjs所以可能我做錯了。我已經使用了我能想象到的所有東西,但是沒有完整的例子用於canceler.resolve()

任何人都可以幫助我解決這個問題,或者指導我走向正確的方向嗎?

回答

10

您需要爲每個請求創建一個新的取消器,因爲一旦解決了它就不能再次使用。

See here for an updated plnkr.

+0

賓果!我正在重複使用我的。這就是爲什麼它不起作用。 –