2013-06-05 25 views
10

Nếu trong khi thực hiện một mục được thêm vào một mảng được hiển thị bằng cách sử dụng ngRepeat, nó có vẽ lại tất cả các mục không?Liệu ngRepeat có đăng lại tất cả các mục sau khi thêm một mục mới?

+2

Câu trả lời dứt khoát cho câu hỏi này là "Có.", Nhưng nó có thể không phải nộp vì SO không cho phép bạn nhập như vậy một câu trả lời ngắn. – Stewie

+2

@Stewie Nó là tốt mà nó không. Bắt đầu với "Có". sau đó thêm lý do/giải thích và liên kết tới (các) tham chiếu. Hoặc, chỉ cần để lại "Có". trong một bình luận. Cũng tốt thôi. – user2246674

+0

Bạn đúng (về giới hạn câu trả lời), nhưng câu hỏi không hỏi "Tại sao lại vẽ lại", nó chỉ hỏi rõ "Nó vẽ lại" và, như vậy, định dạng câu hỏi và độ dài không hiển thị bất kỳ độ nghiêng nào để hiểu những lý do sâu sắc hơn đằng sau hành vi ngRepeat. Đó là những gì "câu trả lời" của tôi có ý định chỉ ra. – Stewie

Trả lời

6

Có, tất cả các mục được vẽ lại.

Thực tế, các mục cũng có thể được vẽ lại vào các thời điểm khác.

Ví dụ: Khi giá trị trong chỉ thị/mẫu mẹ được cập nhật. Trong vòng lặp '$ digest', Angular sẽ đánh giá cây phạm vi và điều này sẽ gây ra các thành phần con bị ảnh hưởng được vẽ lại. thông tin

thêm:

+0

Cảm ơn bạn đã trả lời! Đây là câu hỏi được tiếp tục :) http://stackoverflow.com/questions/16968614/how-to-implment-a-load-more-pagination-in-angularjs-without-ng-repeat – redben

+1

oops, theo bài viết này nó không vẽ lại mọi thứ http://www.bennadel.com/blog/2443-Rendering-DOM-Elements-With-ngRepeat-In-AngularJS.htm – redben

+1

Đó là một điểm tốt! Để làm rõ - một phần tử DOM mới có thể không được thêm vào, nếu góc có thể xác định phần tử đích đã tồn tại. ** Tuy nhiên, ** các yếu tố thay đổi sẽ được đánh giá lại - điều này có thể dẫn đến các hoạt động tốn kém đang chạy lại. Ngoài ra, 'ng-repeat' trên một số loại dữ liệu nhất định sẽ luôn vẽ lại tất cả các phần tử - tức là http://stackoverflow.com/q/14969502/317180 –

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