我正在使用AngularJS(1.5)版本处理MVC应用程序。我希望在登录前保持两个不同的布局,在登录后保持一个布局。我怎样才能做到这一点?
E.g让我们说在登录时我想要显示不同的布局/表格..但是在成功登录后,用户会重定向到不同的布局,这对于其余页面将是相同的。
当我正在研究MVC时,我必须将代码放在View/Shared/_Layout
或任何默认控制器中,例如。 Views/Home/Index
..但我如何保持两种不同的布局?
角度路由将是这样的
var angularFormsApp = angular.module("angularFormsApp", ["ngRoute", "ui.bootstrap"]);
angularFormsApp.config(["$routeProvider", "$locationProvider",
function ($routeProvider, $locationProvider) {
$routeProvider.caseInsensitiveMatch = true;
$routeProvider
.when("/account/index", {
title: "Login",
templateUrl: window.serverURL+"app/Login/loginTemplate.html",
controller: "loginController"
})
.when("/forgotpasswordform", {
title: "Forgot Password",
templateUrl: window.serverURL + "app/Login/forgotPasswordFormtemplate.html",
controller: "loginController"
})
.when("/forgotpasswordconfirmation", {
title: "Forgot Password",
templateUrl: window.serverURL + "app/Login/forgotPassConfirmationTemplate.html",
controller: "loginController"
})
.when("/ResetPassword/:paramhash", {
title: "Reset Password",
templateUrl: window.serverURL + "app/ResetPassword/resetpasswordTemplate.html",
controller: "ResetPassController"
})
.when("/Registeruser", {
title: "New External User Setup",
templateUrl: window.serverURL + "app/RegisterUser/registeruserTemplate.html",
controller: "RegisterUserController"
})
.when("/Manageuser/", {
title: "Manage Users",
templateUrl: window.serverURL + "app/ManageUsers/manageUsersTemplate.html",
controller: "manageUsersController"
})
.when("/changepassword/", {
title: "Change Password",
templateUrl: window.serverURL + "app/ChangePassword/changePasswordTemplate.html",
controller: "changePasswordController"
})
.otherwise({ redirectTo: "/account/index" });
}]);
答案 0 :(得分:0)
可能会在用户记录的模板中存储信息,然后将其传递给root <script>var username='<?php echo $username;?>';</script>
然后在设置路由之前检查全局变量username
如果它不是空的,请采取其他模板
另一种方法是在模板中的某处使用ng-if
,您希望其他css或html存在,如<div ng-if="username"></div>
如果您只想在成功登录后重定向,则可以通过路由器重定向,也可以使用ng-if
显示其他内容
如果您的布局很复杂且在某种程度上足够大,那么使用ng-include并使一个文件决定显示什么而不在您的html架构中集成
你必须以某种方式告诉你的应用程序,现在我们正在显示这个,现在是别的东西,它可以是代码的服务器端或客户端,这取决于你的架构