在angularjs mvc application

时间:2016-07-20 15:28:53

标签: angularjs asp.net-mvc

我正在使用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" });



    }]);

1 个答案:

答案 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架构中集成

你必须以某种方式告诉你的应用程序,现在我们正在显示这个,现在是别的东西,它可以是代码的服务器端或客户端,这取决于你的架构