Họ là gần như nhau, với một vài sự khác biệt:
angular.bootstrap(document, ['TodoApp']);
này sẽ làm việc nếu bạn có kịch bản của bạn nạp ở phần cuối của trang (thay vì trong tiêu đề).
Nếu không, DOM sẽ không được nạp tại thời điểm bootrsaping ứng dụng (sẽ không có bất kỳ mẫu nào được biên dịch, các chỉ thị sẽ không có bất kỳ tác dụng).
Cái này hoạt động: plnkr
Cái này không: plnkr
angular.bootstrap(angular.element("body")[0], ['TodoApp']);
Giống như trước đây, sử dụng body
như thư mục gốc của ứng dụng. Nó sử dụng một bộ chọn không có sẵn trong jqLite, vì vậy bạn cần có toàn bộ jQuery được bao gồm trong ứng dụng.
Tôi không chắc chắn lợi thế của việc sử dụng body
thay document
là gì, nhưng có lẽ có cái gì để làm với E2E thử nghiệm, như được giải thích trong này comment
plknr
angular.element(document).ready(function() {
angular.bootstrap(document);
});
Cái này thực sự là đợi cho DOM được tải, vì vậy nó sẽ hoạt động ngay cả khi bạn bao gồm bạn r script trong tiêu đề.
Điều này về cơ bản giống như của jQuery $(document).ready(
, nhưng sử dụng jqLite
's angular.element
.
Trong ví dụ cuối cùng, không có module đang được truyền cho hàm bootstrap, nhiều khả năng bạn sẽ cần phải khai báo mô-đun chính của bạn, trừ khi ứng dụng của bạn bao gồm chỉ trên bộ điều khiển trong không gian tên toàn cầu.
Vì vậy, lựa chọn cuối cùng sẽ như thế nào sau đây, để có tương tự như hai người kia:
angular.element(document).ready(function() {
angular.bootstrap(document, ['TodoApp']);
});
plknr
Tôi đoán rằng hầu hết thời gian đặt cược an toàn nhất là sử dụng cuối cùng này tiếp cận.
Không phải là câu trả lời, mà là giải thích: cách thứ ba chỉ là trình bao bọc xung quanh jQuery Lite. Đây là một cách tiêu chuẩn để chạy một số mã khi tài liệu đã được tải đầy đủ và việc thực thi tập lệnh của bạn có thể bắt đầu. Nếu bạn tìm kiếm bất kỳ hướng dẫn jquery, sau đó bạn sẽ tìm thấy một cái gì đó như '$ (tài liệu) .ready (function() {...})'. Trong Angular 'angular.element (str)' tương tự như '$ (str)'. Nhưng hãy nhớ rằng điều này sẽ sử dụng jQuery Lite, không phải jQuery thông thường. –