AngularJS를 수동으로 부트스트랩하려면 어떤 방법을 사용해야 합니까?
나는 다음과 같은 것을 보았다.
angular.bootstrap(document, ['TodoApp']);
angular.bootstrap(angular.element("body")[0], ['TodoApp']);
또한 각도JS 문서에서는 이 내용을 잘 모르겠습니다.
angular.element(document).ready(function() {
angular.bootstrap(document);
});
이 방법들 사이에 차이가 있나요?특히 Angular docs의 마지막 방법은 무엇입니까?한쪽이 다른 쪽보다 더 좋은가요?
이 두 가지는 거의 비슷하지만 몇 가지 차이점이 있습니다.
angular.bootstrap(document, ['TodoApp']);
스크립트가 (헤더가 아닌) 페이지 끝에 로드되어 있는 경우, 이 조작은 유효합니다.
그렇지 않으면 앱을 부팅할 때 DOM이 로드되지 않습니다(컴파일할 템플릿이 없고 디렉티브가 영향을 미치지 않습니다).
이것은 동작합니다.plnkr
이 제품은 그렇지 않습니다: plnkr
angular.bootstrap(angular.element("body")[0], ['TodoApp']);
이전과 같음, 사용body응용 프로그램의 루트로 사용됩니다.jqLite에는 없는 셀렉터를 사용하기 때문에 앱에 풀 jQuery가 포함되어 있어야 합니다.
어떤 장점이 있는지 잘 모르겠습니다.body대신document단, 이 코멘트에서 설명한 바와 같이 e2e 테스트와 관련이 있을 수 있습니다.
angular.element(document).ready(function() {
angular.bootstrap(document);
});
이것은 실제로 DOM이 로드될 때까지 대기하기 때문에 헤더에 스크립트를 포함해도 동작합니다.
이것은 기본적으로 jQuery의 것과 동일합니다.$(document).ready(, 단, 사용방법jqLite의angular.element.
마지막 예에서는 부트스트랩 함수에 모듈이 전달되지 않습니다.아마도 어플리케이션이 글로벌네임스페이스의 컨트롤러로만 구성되어 있지 않는 한 메인 모듈을 선언해야 합니다.
따라서 마지막 옵션은 다른 두 가지 옵션과 비슷하도록 다음과 같습니다.
angular.element(document).ready(function() {
angular.bootstrap(document, ['TodoApp']);
});
가장 안전한 방법은 대부분 이 마지막 방법을 사용하는 것 같습니다.
언급URL : https://stackoverflow.com/questions/16537783/which-method-should-i-use-to-manually-bootstrap-my-angularjs
'programing' 카테고리의 다른 글
| 여러 쿼리를 사용하는 복잡한 Wordpress 쿼리 (0) | 2023.03.21 |
|---|---|
| 장고를 위한 가장 좋은 AJAX 라이브러리는 무엇입니까? (0) | 2023.03.21 |
| 상태 배열의 항목을 편집하는 방법 (0) | 2023.03.21 |
| PHP에서 직렬화 또는 json을 수행하시겠습니까? (0) | 2023.03.21 |
| 스프링은 @Autowired Annotation 없이 생성자에 종속성을 주입합니다. (0) | 2023.03.21 |