Sie können angular.bootstrap()
direkt verwenden ... das Problem ist, dass Sie die Vorteile von Richtlinien verlieren.
Zuerst müssen Sie einen Verweis auf das HTML-Element erhalten, um es booten zu können. Dies bedeutet, dass Ihr Code jetzt mit Ihrem HTML gekoppelt ist.
Zweitens ist die Assoziation zwischen den beiden nicht so offensichtlich. Mit können ngApp
Sie klar erkennen, welcher HTML-Code mit welchem Modul verknüpft ist, und wissen, wo Sie nach diesen Informationen suchen müssen. Aber angular.bootstrap()
könnte von überall in Ihrem Code aufgerufen werden.
Wenn Sie dies überhaupt tun möchten, verwenden Sie am besten eine Direktive. Welches ist, was ich getan habe. Es heißt ngModule
. So würde Ihr Code aussehen, wenn Sie ihn verwenden:
<!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>
Den Quellcode dafür erhalten Sie unter:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
Es ist auf die gleiche Weise implementiert wie ngApp
. Es ruft einfach angular.bootstrap()
hinter die Kulissen.