Bạn có thể sử dụng angular.bootstrap()
trực tiếp ... vấn đề là bạn mất lợi ích của các chỉ thị.
Trước tiên, bạn cần có một tham chiếu đến phần tử HTML để khởi động nó, điều đó có nghĩa là mã của bạn hiện được ghép với HTML của bạn.
Thứ hai, sự liên kết giữa hai không rõ ràng. Với ngApp
bạn có thể thấy rõ HTML nào được liên kết với mô-đun nào và bạn biết nơi để tìm thông tin đó. Nhưng angular.bootstrap()
có thể được gọi từ bất cứ nơi nào trong mã của bạn.
Nếu bạn sẽ làm điều đó bằng mọi cách tốt nhất sẽ là sử dụng một chỉ thị. Đó là những gì tôi đã làm. Nó được gọi là ngModule
. Đây là những gì mã của bạn sẽ trông giống như sử dụng nó:
<!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>
Bạn có thể lấy mã nguồn cho nó tại:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limemony-with-ngmodule/
Nó được thực hiện theo cách tương tự như ngApp
. Nó chỉ đơn giản là gọi angular.bootstrap()
phía sau hậu trường.