有沒有人有一個想法如何創建一個模塊loginApp和mainApp的angularjs應用程序,登錄將使用login.html和mainApp將使用index.html?如何在另一個引導另一個angularjs應用程序?
以下是我想要實現的場景。
- 運行loginApp
- 一旦通過驗證,運行mainApp
我目前做上述情況,因爲我希望我的登錄頁面加載速度更快,所以不是使用的index.html其中有很多包括<script>
。
有沒有人有一個想法如何創建一個模塊loginApp和mainApp的angularjs應用程序,登錄將使用login.html和mainApp將使用index.html?如何在另一個引導另一個angularjs應用程序?
以下是我想要實現的場景。
我目前做上述情況,因爲我希望我的登錄頁面加載速度更快,所以不是使用的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