2013-07-05 32 views
6

Tôi có cần gọi $ scope. $ Áp dụng khi thực hiện cuộc gọi ajax bằng $ http không?

Có vẻ như nó không cần thiết vì mã của tôi vẫn hoạt động, và khi tôi sử dụng JQuery ajax tôi cần gọi để áp dụng hoặc nó không hoạt động.

Vì vậy, để hoàn toàn chắc chắn, tôi có thể bỏ qua các cuộc gọi áp dụng ngay bây giờ không?

Trả lời

3

Với AngularJS phiên bản 1.1.x, bạn sẽ cần phải thêm Scope.$apply nếu kích hoạt $http cuộc gọi bên ngoài chu trình AngularJS $digest.

Giải thích chi tiết tại đây: https://stackoverflow.com/a/17271385/1418796

+0

và trường hợp nào sẽ kích hoạt $ http ngoài chu kỳ góc bình thường? chỉ thời gian chờ và ajax không được kích hoạt bởi $ timeout hoặc $ http? –

+0

@RogerAlsing có những thời gian chính. NẾU bạn đang sử dụng hết thời gian chờ xem xét sử dụng [$ timeout] (http://docs.angularjs.org/api/ng.$timeout) –

+0

@RogerAlsing cũng tất cả yêu cầu '$ http' được kích hoạt từ trình xử lý sự kiện DOM thông thường (thường là trong chỉ thị). –

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