如何在另一个引导另一个angularjs应用程序?

如何在另一个引导另一个angularjs应用程序?

问题描述:

有没有人有一个想法如何创建一个模块loginApp和mainApp的angularjs应用程序,登录将使用login.html和mainApp将使用index.html?如何在另一个引导另一个angularjs应用程序?

以下是我想要实现的场景。

  1. 运行loginApp
  2. 一旦通过验证,运行mainApp

我目前做上述情况,因为我希望我的登录页面加载速度更快,所以不是使用的index.html其中有很多包括<script>

+0

尝试使用angular.bootstrap(文件,[ 'mainApp']); –

+0

我不认为这是一个好主意,有单独的应用程序。很可能,如果您希望应用程序响应更快,您必须查看使用延迟加载。 http://www.codeproject.com/Articles/1039826/Angularjs-Lazy-Loading-with-Requirejs-and-OcLazylo –

+0

@RaviTeja,是的,我可以用RequireJS和ocLazyLoad做到这一点,也许以后,只想得到一个简单的肮脏而不是重构整个应用程序。 – imprezzeb

您可以手动启动应用程序。看到这里[更多] [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 
+0

那么angularjs如何知道要使用什么html? – imprezzeb

手动角应用程序初始化。

angular.module('myApp', []) 
    .controller('MyController', ['$scope', function ($scope) { 
    $scope.greetMe = 'World'; 
    }]); 

angular.element(document).ready(function() { 
    angular.bootstrap(document, ['myApp']); 
}); 

更多信息Bootstrap Angular App