2013-10-23 63 views
5

我有一個帶有index.html頁面的angularjs SPA應用程序作爲主要模板,其餘視圖作爲子視圖加載到ng-view標記中。我爲該網站使用了twitter引導程序模板,因此該模板的登錄頁面與其餘頁面不同。有沒有辦法建立多個主模板頁面,一個用於登錄頁面,另一個用於其他所有頁面?我一直在試圖弄清楚如何在路由提供程序中指定不同的頁面,但我一直無法弄清楚如何指定頁面而不是局部視圖作爲templateURL,或者甚至可能。AngularJS應用程序多個頁面

我是新來的angularjs所以我不知道什麼是處理這種情況的最佳方法。

感謝

+0

我覺得這個職位回答你的問題:http://stackoverflow.com/questions/11541695/angular-js-redirecting-to-a-certain-基於路由上條件 – user3393575

回答

1

你就必須做到這一點使用ng-include。你的主視圖應該

<body ng-app> 
    <div id='topNav' ng-include='templateUrl' ng-controller='topNavController'></div> 
    <div id='left' ng-include='templateUrl' ng-controller='leftNavController'></div> 
    <div ng-view> 
</body> 

templateUrl可以從服務器或預裝到使用<script>標籤的客戶端。

JavaScript看起來像。

function topNavController($scope, $route, $location) { 
    //Check using $route or $location if login view is loaded 
    // if yes $scope.templateUrl='loginTopNavTemplateUrl' 
    //else $scope.templateUrl='mainNavTemplateUrl' 
} 

ng-include$route$location檢查文檔,看看這些元素如何如何工作的。

2

你在正確的軌道上RouteProvider

angular.module('mymodule', ['ngRoute']) 

.config(function($routeProvider) { 

    $routeProvider. 
     when('/index.html/page1/', {templateUrl : './templates/template1.html'}). 
     when('/index.html/page2/', {templateUrl : './templates/template2.html'}). 
     otherwise({redirectTo : '/index.html/page1/'}); 
});