如何在另一个引导另一个angularjs应用程序?
有没有人有一个想法如何创建一个模块loginApp和mainApp的angularjs应用程序,登录将使用login.html和mainApp将使用index.html?如何在另一个引导另一个angularjs应用程序?
以下是我想要实现的场景。
- 运行loginApp
- 一旦通过验证,运行mainApp
我目前做上述情况,因为我希望我的登录页面加载速度更快,所以不是使用的index.html其中有很多包括<script>
。
您可以手动启动应用程序。看到这里[更多] [1]
手动自举一个AngularJS应用
让我们先来定义我们的应用程序的主模块开始:
var myApplication = angular.module("myApplication", []);
现在,而不是依靠NG-应用属性,我们可以手动调用angular.bootstrap函数。我们需要将它的应用程序根目录和我们的主模块的名称。这里是你如何尽快DOM加载完成后调用它:
angular.element(document).ready(function() {
angular.bootstrap(document, ["myApplication"]);
});
只有一个AngularJS应用程序可以自动自举每个HTML文档。在文档中找到的第一个ngApp将用于定义根元素作为应用程序自动引导。要在HTML文档中运行多个应用程序,您必须使用angular.bootstrap来手动引导它们。 AngularJS应用程序不能相互嵌套。 - http://docs.angularjs.org/api/ng.directive:ngApp
又见
https://groups.google.com/d/msg/angular/lhbrIG5aBX4/4hYnzq2eGZwJ
http://docs.angularjs.org/api/angular.bootstrap
那么angularjs如何知道要使用什么html? – imprezzeb
手动角应用程序初始化。
angular.module('myApp', [])
.controller('MyController', ['$scope', function ($scope) {
$scope.greetMe = 'World';
}]);
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
尝试使用angular.bootstrap(文件,[ 'mainApp']); –
我不认为这是一个好主意,有单独的应用程序。很可能,如果您希望应用程序响应更快,您必须查看使用延迟加载。 http://www.codeproject.com/Articles/1039826/Angularjs-Lazy-Loading-with-Requirejs-and-OcLazylo –
@RaviTeja,是的,我可以用RequireJS和ocLazyLoad做到这一点,也许以后,只想得到一个简单的肮脏而不是重构整个应用程序。 – imprezzeb