Ви можете використовувати angular.bootstrap()
безпосередньо ... проблема полягає в тому, що ви втрачаєте переваги директив.
Спочатку вам потрібно отримати посилання на елемент HTML, щоб завантажити його, а значить, ваш код тепер поєднаний з вашим HTML.
По-друге, асоціація між ними не така очевидна. З ngApp
ви можете ясно бачити , що HTML пов'язано з тим, що модуль , і ви знаєте , де шукати цю інформацію. Алеangular.bootstrap()
його можна викликати з будь-якого місця вашого коду.
Якщо ви збираєтеся це зробити взагалі найкращим способом було б, використовуючи директиву. Що я і зробив. Це називається ngModule
. Ось як виглядатиме ваш код:
<!DOCTYPE html>
<html>
<head>
<script src="angular.js"></script>
<script src="angular.ng-modules.js"></script>
<script>
var moduleA = angular.module("MyModuleA", []);
moduleA.controller("MyControllerA", function($scope) {
$scope.name = "Bob A";
});
var moduleB = angular.module("MyModuleB", []);
moduleB.controller("MyControllerB", function($scope) {
$scope.name = "Steve B";
});
</script>
</head>
<body>
<div ng-modules="MyModuleA, MyModuleB">
<h1>Module A, B</h1>
<div ng-controller="MyControllerA">
{{name}}
</div>
<div ng-controller="MyControllerB">
{{name}}
</div>
</div>
<div ng-module="MyModuleB">
<h1>Just Module B</h1>
<div ng-controller="MyControllerB">
{{name}}
</div>
</div>
</body>
</html>
Ви можете отримати його вихідний код за адресою:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
Він реалізований так само, як і ngApp
. Це просто дзвінки angular.bootstrap()
за лаштунками.