2013-07-01 30 views
5

Trong angular JS 1.1.5 mới, bạn có thể hủy các cuộc gọi $ http trước đó. Hai số link1link2 này sẽ giải thích cách hoạt động của nó.

Tuy nhiên tôi không thể hiểu, cách sử dụng điều này trong thực tế. Tôi đã tạo ra plnkr để minh họa những gì tôi muốn đạt được.

  1. Người dùng có một liên kết ông có thể click vào (như chúng ta biết, người dùng có xu hướng làm điều đó rất say mê)
  2. Nếu người dùng nhấp liên kết, và yêu cầu trước đó vẫn chưa hoàn thành, nó sẽ bị hủy bỏ, và Yêu cầu mới nên được thực hiện (trong ví dụ này có nhiều cách khác để bỏ qua nhiều lần nhấp chuột. Vấn đề gốc là trường nhập của người dùng với ng-thay đổi trên đó - yêu cầu được thực hiện mỗi khi người dùng thay đổi giá trị - mỗi lần nhấn sẽ kích hoạt $ http. sử dụng liên kết để làm cho nó đơn giản hơn một chút)

Như bạn có thể thấy trong yêu cầu plnkr cháy và bị hủy ngay lập tức, nhưng tôi mong đợi ng yêu cầu cuối cùng để thành công.

Tôi mới làm quen với angularj nên có lẽ tôi đang làm sai. Tôi đã gooled tất cả mọi thứ tôi có thể tưởng tượng, nhưng không có ví dụ đầy đủ cho canceler.resolve()

Bất cứ ai có thể giúp tôi với điều này hoặc hướng dẫn tôi đi đúng hướng?

Trả lời

10

Bạn cần phải tạo trình hủy mới cho mỗi yêu cầu, bởi vì khi nó được giải quyết, bạn không thể sử dụng lại lần nữa.

See here for an updated plnkr.

+0

Bingo! Tôi đã tái sử dụng của tôi. Đó là lý do tại sao nó không hoạt động. –

Các vấn đề liên quan