我正在開發一個角度應用。到目前爲止,我有一個包含應用程序主模板的layout.html文件。部分文件中有一些其他文件/通過此代碼路由:Angularjs基於角色的路由
angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider', '$httpProvider',
function ($routeProvider, $locationProvider, $httpProvider) {
$routeProvider
.when('/', {
templateUrl: '/partials/index',
controller: 'MainController'
})
.when('/:category/:action?/:id?', {
templateUrl: function (params) {
var allowedParams = ['category', 'action', 'id'];
var paramVals = [];
for (var key in params) {
if (allowedParams.indexOf(key) !== -1) {
paramVals.push(params[key]);
}
}
console.log(paramVals.join('/'));
return '/partials/' + paramVals.join('/');
}
})
.otherwise({
redirectTo: '/'
});
]);
到目前爲止它運行良好。但是它會更復雜。我想展示基於角色的觀點。每個視圖之間的主要區別將是側欄導航內容。用一個例子來說明:如果我鍵入www.domain.com/admin-dashboard或www.domain.com/user-dashboard將呈現類似的視圖,但是每個角色可用的選項和菜單將有所不同。我的第一個嘗試是創建一個admin-layout.html和一個user-layout.html。但是,我不知道這是否是一個正確的解決方案,我在編寫代碼時遇到問題,因此它使用一個模板或另一個模板。
任何想法將不勝感激。
UPDATE:
可以說我有一個的layout.html
<html lang="en">
<head>
</head>
<body ng-app="todoApp" ng-controller="MainController" class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
<!-- ####### Layout 1: IF the user is logged in: (show header and sidebar depending on the role) -->
<!-- Header: remains the same regardless the role -->
<header class="main-header"></header>
<!-- Left side column: changes according to the role -->
<aside class="main-sidebar"></aside>
<!-- Content -->
<div class="content-wrapper">
<section ng-view class="content">
</section>
</div>
<!-- ####### !Layout 1: end of Layout 1 -->
<!-- ####### Layout 2: IF the user is not logged in: (show a simple login form in the middle) -->
<!-- Content -->
<div class="content-wrapper">
<section ng-view class="content">
</section>
</div>
<!-- ####### !Layout 2: end of Layout 2 -->
<!-- Footer: remains the same always -->
<footer class="main-footer"></footer>
</div>
</body>
我能確定登錄用戶的角色,但是這取決於角色我想顯示出對不同的信息側邊欄。這可以使用data-ng-include來完成,如下面的Ali所示。但是,如果Id想要爲登錄頁面呈現不同的模板(例如沒有側欄或導航欄,只是帶有頁腳的空白畫布),或者我想呈現3列模板。這怎麼能夠正確完成?我如何指示角度在給定條件下使用不同的模板。再次感謝。
又如:有一個www.example.com/login視圖。我只需要一個簡單的白色模板,可以呈現登錄表單。我不需要其他視圖上的導航和頁腳。 – Jonathan