2015-10-27 20 views
7

Sự khác nhau giữa việc sử dụng document$document trong khi phát triển các ứng dụng của Angular là gì? Tôi đọc rằng tốt hơn nên sử dụng các số tương đương của góc cạnh như: $window thay vì window hoặc $timeout thay vì setTimeout.

Nhưng ... tại sao? Tôi nghĩ window, setTimeoutdocument nhanh hơn vì chúng là nguồn gốc và không cần phải "chuyển qua" mã khuôn khổ Góc.

Có tốt hơn khi sử dụng tương đương Angular thay vì các hàm gốc, đối tượng từ JS không?

+0

Hoàn toàn đồng ý với bạn .. Có mã gốc nhanh hơn nhưng lý do tôi hiểu là nhà phát triển góc mới sau khi bạn có thể không hiểu mã gốc. Đó là lý do tại sao, có thể. Nhưng tôi tự hỏi tại sao (hoặc chính xác như thế nào) người học Angular mà không biết những gì xảy ra trong mã nguồn gốc? –

+0

Hãy xem tài liệu angularJS nói gì: Trình bao bọc jQuery hoặc jqLite cho đối tượng window.document của trình duyệt. –

+0

https://coderwall.com/p/udpmtq/angularjs-use-timeout-not-settimeout điều này sẽ giúp bạn –

Trả lời

0

Tiếp theo là luôn luôn đúng: $ window.document === $ tài liệu [0]

5

$document là một đối tượng jQuery (về cơ bản $(document)).

Vì vậy, về cơ bản bạn sẽ có thể làm:

$document[0].property = document.property 

Bạn có thể nhìn vào this cho một ví dụ.

6

Bằng cách sử dụng dịch vụ góc cho $ document và $ window, bạn làm cho bài kiểm tra đơn vị mã của bạn sẵn sàng. Việc tiêm phụ thuộc này cho phép bạn sử dụng các phiên bản giả của $ document hoặc $ window trong các thử nghiệm của bạn.

Tác động hiệu suất được đề cập có thể bị bỏ qua.

0

Bạn nên sử dụng wrapers góc, bcus nó không phá vỡ sự đồng bộ góc với model-> xem,

Đối exmaple, nếu bạn sử dụng setTimeout bạn sẽ phải $ tiêu hóa() phạm vi để làm mới các giá trị trong chế độ xem, nếu bạn có kế hoạch thay đổi một số giá trị mô hình, mặt khác nếu bạn sử dụng $ timeout, bạn không cần phải làm điều đó bcus phạm vi sẽ làm mới sau khi hàm kết thúc

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