Почему ng-app можно поставить в любой тег?
Я новичок в AngularJS. Я хотел бы знать, в чем разница, если я размещу ng-app
в любом <html>
тег или <body>
или же <div>
, Точно такое же сомнение для ng-controller
,
2 ответа
Расположение тега ng-controller
определяет видимость и использование области
<div ng-controller="outerController" id="outerController">
//outerController $scope is available here
//innerController $scope is **not** available here
<div ng-controller="innerController" id="innerController">
//outerController $scope is available here
//myControllers $scope is available here
</div>
</div>
Вложенные контроллеры будут искать элементы в ближайшей ограниченной области, прежде чем подниматься по цепочке.
Например представьте $scope.outerVar
установлен на externalController
Если innerController пытается получить доступ $scope.outerVar
Затем выполняется проверка, чтобы определить, установлено ли это свойство на innerController первым. Только если он не установлен, он пойдет по цепочке к externalController, чтобы получить его оттуда.
Где бы вы ни разместили ng-app, элементы внутри него могут получить доступ только к модулю, а ng-контроллер может использоваться только тогда, когда вы использовали ng-app в каком-то верхнем элементе...
Контроллеры доступны только в том случае, если модуль инициализирован, что делается с помощью оператора ng-app.
помните, что mmodule должен быть инициализирован только один раз и для элемента, под которым вы хотите, чтобы все функции угловых контроллеров для ваших различных элементов