Что подразумевается под загрузкой в ​​angular JS? - программирование
Подтвердить что ты не робот

Что подразумевается под загрузкой в ​​angular JS?

Я новичок в Angular JS. Я прошел через ссылку ниже. http://docs.angularjs.org/tutorial/step_00

Что такое файлы начальной загрузки? Где они расположены?

Что такое автоматическая загрузка и ручная инициализация начальной загрузки? Я прочитал недостаток ручной инициализации, как показано ниже.. из ссылки http://docs.angularjs.org/guide/bootstrap

Может ли кто-нибудь объяснить, в чем тут недостаток?

4b9b3361

Ответ 1

Несмотря на то, что Everyone above ответил отлично, и я нашел то, что искал, но все же рабочий пример кажется отсутствующим.

Хотя понимание об автоматической/ручной загрузке в AngularJS ниже примеров может помочь много:

AngularJS: автозагрузка:

Angular автоматически инициализирует /bootstraps при событии DOMContentLoaded или при загрузке angular.js script в браузер и завершается установка document.readyState. В этот момент AngularJS ищет директиву ng-app. Когда найдена директива ng-app, Angular будет:

  • Загрузите модуль, связанный с директивой.

  • Создайте инжектор приложения.

  • Скомпилируйте DOM, начиная с корневого элемента ng-app.

Этот процесс называется автозагрузкой.

<html>

    <body ng-app="myApp">
        <div ng-controller="Ctrl">Hello {{msg}}!</div>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
        <script>
            var app = angular.module('myApp', []);
            app.controller('Ctrl', function($scope) {
                $scope.msg = 'Nik';
            });
        </script>
    </body>

</html>

JSFiddle: http://jsfiddle.net/nikdtu/ohrjjqws/

AngularJS - Ручная загрузка:

Вы можете вручную инициализировать приложение Angular с помощью функции angular.bootstrap(). Эта функция принимает модули как параметры и должна вызываться внутри функции angular.element(document).ready(). Функция angular.element(document).ready() запускается, когда DOM готов к обработке.

<html>

    <body>
        <div ng-controller="Ctrl">Hello {{msg}}!</div>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
        <script>
            var app = angular.module('myApp', []);
            app.controller('Ctrl', function($scope) {
                $scope.msg = 'Nik';
            }); 
            //manual bootstrap process 
            angular.element(document).ready(function () { angular.bootstrap(document, ['myApp']); });
        </script>
    </body>

</html>

JSFiddle: http://jsfiddle.net/nikdtu/umcq4wq7/

Примечание:

  • Вы не должны использовать директиву ng-app при ручной загрузке ваше приложение.

  • Вы не должны смешивать автоматический и ручной способ загрузки ваше приложение.

  • Определите модули, контроллер, службы и т.д., прежде чем вручную загрузив ваше приложение, как определено в приведенных выше примерах.

Ссылка: http://www.dotnettricks.com/books/angularjs/interview

Ответ 2

Бутстрапинг является эквивалентом инициализации или запуска вашего приложения Angular. Существует 2 основных способа сделать это.

Первый автоматически загружается, добавляя ng-app к элементу в вашем HTML, например:

<html ng-app="myApp">
...
</html>

Во-вторых, нужно будет загрузиться с JavaScript, например, после создания вашего приложения через angular.module("myApp", []);

angular.bootstrap(document, ['myApp']);

Ответ 3

Добавление к ответу Дэйва Сверского (и я новичок в Angular, так что поправьте меня, если я ошибаюсь):

Следующее изображение, взятое из учебника начальной загрузки angularjs.org. Объясняет, что Дэйв сформулировал.

enter image description here

HTML, внутри элемента с директивой ng-app, компилируется AngularJS. Например:

<body>
    <div> {{ 1 + 2 }} </div>
</body>

Отметьте как это:

{{ 1 + 2 }}

Однако добавление директивы ng-app:

<body ng-app="module">
    <div> {{ 1 + 2 }} </div>
</body>

Отображается следующим образом:

3

Это связано с тем, что ng-приложение "загрузило" тег body и сообщило Angular о создании "внутреннего представления" содержимого. Внутреннее представление, конечно, 3. Из учебника:

"Если инструкция ng-app найдена, то Angular скомпилирует DOM рассматривая директиву ng-app как корень компиляции. Эта позволяет вам рассказать об этом только часть DOM как Angularприменение".

Angular также загружает модуль, связанный с директивой ng-app ( "модуль" в учебнике Angular) и создает инжектор приложения (используется для инъекции зависимостей).

Ответ 4

Директива ng-app указывает, какая часть страницы (все или часть, вплоть до вас) является корнем приложения Angular. Angular читает HTML внутри этого корня и компилирует его во внутреннее представление. Это чтение и компиляция - это процесс начальной загрузки.

Ручная перезагрузка - это когда вы пишете код для выполнения процесса начальной загрузки вместо использования директивы ng-app.

Ответ 5

Angular Процесс автозагрузки JS

AngularInit() - первый Angular api, вызываемый для автоматической загрузки с помощью функции jqLite ready.

  • ready(), вызываемый при готовности DOM
  • angularInit(), вызванный из ready()
  • Angular Init извлечь ng-app элемент из DOM, используя element.querySelectorAll() один из следующих форматов: 'ng: app', 'ng-app', 'x-ng-app', 'data-ng -приложение' Ex.
  <body ng-app=ngAppDemo>
      <div ng-controller="ngAppDemoController" >
          I can add: {{a}} + {{b}} =  {{ a+b }}         </div>
  </body>
ng-app="ngAppDemo" will be extracted.
  1. Используя модуль регулярных выражений, ex. module = "ngAppDemo"
  2. наконец-то загрузочный (..) вызов, который создает глобальный инжектор и корнеплод и загрузочный ремень Angular.

Ответ 6

На странице Angular NgModules:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from './app.component';

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

Наконец, свойство @NgModule.bootstrap идентифицирует этот AppComponent как компонент начальной загрузки. Когда Angular запускает приложение, он помещает HTML-рендеринг AppComponent в DOM внутри тегов элементов index.html.

Загрузка в main.ts

Вы запускаете приложение, загружая AppModule в файл main.ts.

Angular предлагает множество параметров начальной загрузки для нескольких платформ. На этой странице описаны два варианта, предназначенные для браузера.

Ответ 7

В угловой инициализации /Bootstrap это делается двумя способами.

Позвольте мне объяснить, когда и где использовать ручную и автоматическую загрузку.

Ручная загрузка:

Предположим, вам нужно загрузить некоторые данные или связать некоторый шаблон с помощью запроса на стороне сервера, но что если угловое приложение будет автоматически инициализировано до завершения этой операции?

Можем ли мы вручную инициализировать наше приложение в зависимости от успеха и неудачи результата? Да, мы можем сделать это. Таким образом, решение вышеуказанной проблемы

Рассмотрим пример: вы используете сервер Worklight. Вы хотите инициализировать /bootstrap сразу после инициализации сервера worklight, здесь вы будете выполнять загрузку вручную. Ручная инициализация полезна, когда вы хотите выполнить определенные действия перед тем, как запускать угловое приложение и компилировать страницу.

angular.element(document).ready(function () 
  {
         angular.bootstrap(document, ['myApp']);
  });

Приведенный выше код записывается в файл main.js после инициализации worlight.

Автозагрузка:

Angular инициализирует/загружает автоматически при DOMContentLoaded или при загрузке сценария angular.js в браузер. Затем он ищет приложение ng. Когда он найден, он загружает модули, связанные с этой директивой ng-app.