Angular新手。我觉得我错过了一些明显的东西:我不应该能够轻松地在同一个html页面中运行分离AngularJs应用程序(模块)吗?像这样:
<section ng-app="HelloWorldApp" ng-controller="HelloWorldController">
Hello {{name}}!
</section>
<br />
<section ng-app="MyNameIsApp" ng-controller="MyNameIsController">
My Name is {{FirstName}} {{LastName}}!
</section>
使用Javascript:
var HelloWorldApp = angular.module('HelloWorldApp', []);
HelloWorldApp.controller('HelloWorldController', function($scope) {
$scope.name = 'World';
});
var MyNameIsApp = angular.module('MyNameIsApp', []);
MyNameIsApp.controller('MyNameIsController', function($scope) {
$scope.FirstName = 'John';
$scope.LastName = 'Smith';
});
这只运行第一个模块,而第二个模块似乎没有做任何事情。我想这样做,以便我可以为多个页面构建可重用的封装指令,而不必将它们的模块命名为相同的东西。
直播示例:http://plnkr.co/edit/cE6i3ouKz8SeQeA5h3VJ
我们最终构建了small hierarchy of modules,但我的原始问题可以完成,只需要做一些工作(见下文)。
答案 0 :(得分:49)
这是可能的,但需要手工编写一点点编码。您需要自己引导角度应用程序。别担心,它并不复杂
ng-app
属性angular.bootstrap( domElement, ['AppName']);
答案 1 :(得分:7)
答案 2 :(得分:5)
您可以在主要模块的模块def中指定任何嵌套的应用程序。
angular.module("myapp", ['statusapp', 'tickerapp']).controller(....
并在单独的文件中,您已定义其他应用程序。我们正在使用模板引擎隐藏其中的一部分,但您最终会得到HTML,其中包含嵌套的ng-apps和javascript,用于定义模块/控制器的每一个。上面的代码是获得多个bootstrap的技巧。