如何在角度js中重定向到管理面板中的登录视图

时间:2017-01-08 07:43:21

标签: angularjs

我的登录页面内容非常简单,没有侧边栏,顶部导航,另一页主视图有主要内容,侧边栏,顶部导航,但想加载登录视图而没有侧栏,顶部导航。

app.js

var app = angular.module('myApp',['ui.router' , 'ngMessages']);
app.config(function($stateProvider , $urlRouterProvider){
    $stateProvider
            .state('index',{
                url: '/',
                templateUrl: 'views/index.html'
            })

            .state("helper",{
                url:"/helper",
                templateUrl : "views/helper.html",
                controller: 'helperController',
            })

             .state('login',{
                url: '/login',
                templateUrl: 'views/login.html',
            })

    //By Default Load the template
    $urlRouterProvider.otherwise('/');
});

app.controller('helperController',function($scope , $http){
    $scope.addHelper = function(){
        var data = [{
            first_name : $scope.first_name,
            last_name : $scope.last_name,
            email : $scope.email,
            phone : $scope.phone,
            state : $scope.state,
            city : $scope.city,
            zip_code : $scope.zip_code,
            address : $scope.address,
            password : $scope.password,
        }];
        console.log(data);
    }
});

app.controller('loginController', ["$scope", "$rootScope", "$state", function ($scope, $rootScope, $state) {       
  $state.go('login');
}]);

登录页面: -

    <!DOCTYPE html>
<html lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <!-- Meta, title, CSS, favicons, etc. -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Gentallela Alela! | </title>

  <!-- Bootstrap core CSS -->

  <link href="css/bootstrap.min.css" rel="stylesheet">

  <link href="fonts/css/font-awesome.min.css" rel="stylesheet">
  <link href="css/animate.min.css" rel="stylesheet">

  <!-- Custom styling plus plugins -->
  <link href="css/custom.css" rel="stylesheet">
  <link href="css/icheck/flat/green.css" rel="stylesheet">


  <script src="js/jquery.min.js"></script>

</head>

<body style="background:#F7F7F7;">

  <div class="">
    <a class="hiddenanchor" id="toregister"></a>
    <a class="hiddenanchor" id="tologin"></a>

    <div id="wrapper">
      <div id="login" class="animate form">
        <section class="login_content">
          <form>
            <h1>Login Form</h1>
            <div>
              <input type="text" class="form-control" placeholder="Username" required="" />
          </div>
          <div>
              <input type="password" class="form-control" placeholder="Password" required="" />
          </div>
          <div>
              <a class="btn btn-default submit" href="index.html">Log in</a>
              <a class="reset_pass" href="#">Lost your password?</a>
          </div>
          <div class="clearfix"></div>
          <div class="separator">

              <p class="change_link">New to site?
                <a href="#toregister" class="to_register"> Create Account </a>
            </p>
            <div class="clearfix"></div>
            <br />
            <div>
                <h1><i class="fa fa-paw" style="font-size: 26px;"></i> Gentelella Alela!</h1>

                <p>©2015 All Rights Reserved. Gentelella Alela! is a Bootstrap 3 template. Privacy and Terms</p>
            </div>
        </div>
    </form>
    <!-- form -->
</section>
<!-- content -->
</div>
<div id="register" class="animate form">
    <section class="login_content">
      <form>
        <h1>Create Account</h1>
        <div>
          <input type="text" class="form-control" placeholder="Username" required="" />
      </div>
      <div>
          <input type="email" class="form-control" placeholder="Email" required="" />
      </div>
      <div>
          <input type="password" class="form-control" placeholder="Password" required="" />
      </div>
      <div>
          <a class="btn btn-default submit" href="index.html">Submit</a>
      </div>
      <div class="clearfix"></div>
      <div class="separator">

          <p class="change_link">Already a member ?
            <a href="#tologin" class="to_register"> Log in </a>
        </p>
        <div class="clearfix"></div>
        <br />
        <div>
            <h1><i class="fa fa-paw" style="font-size: 26px;"></i> Gentelella Alela!</h1>

            <p>©2015 All Rights Reserved. Gentelella Alela! is a Bootstrap 3 template. Privacy and Terms</p>
        </div>
    </div>
</form>
<!-- form -->
</section>
<!-- content -->
</div>
</div>
</div>

</body>

</html>

主布局: -

    <!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <!-- Meta, title, CSS, favicons, etc. -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Gentallela Alela! | </title>

  <!-- Bootstrap core CSS -->

  <link href="css/bootstrap.min.css" rel="stylesheet">

  <link href="fonts/css/font-awesome.min.css" rel="stylesheet">
  <link href="css/animate.min.css" rel="stylesheet">

  <!-- Custom styling plus plugins -->
  <link href="css/custom.css" rel="stylesheet">
  <link rel="stylesheet" type="text/css" href="css/maps/jquery-jvectormap-2.0.3.css" />
  <link href="css/icheck/flat/green.css" rel="stylesheet" />
  <link href="css/floatexamples.css" rel="stylesheet" type="text/css" />

  <script src="js/jquery.min.js"></script>
  <script src="js/nprogress.js"></script>
  <script src="js/angular.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.14/angular-ui-router.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-messages.min.js"></script>
  <script src="js/app.js"></script>

</head>


<body class="nav-md"  ng-app="myApp">
    <div ui-view="login"></div>
  <div class="container body">


    <div class="main_container">

      <div class="col-md-3 left_col">
        <div class="left_col scroll-view">

          <div class="navbar nav_title" style="border: 0;">
            <a href="index.html" class="site_title"><i class="fa fa-paw"></i> <span>Gentellela Alela!</span></a>
        </div>
        <div class="clearfix"></div>

        <!-- menu prile quick info -->
        <div class="profile">
            <div class="profile_pic">
              <img src="images/img.jpg" alt="..." class="img-circle profile_img">
          </div>
          <div class="profile_info">
              <span>Welcome,</span>
              <h2>John Doe</h2>
          </div>
      </div>
      <!-- /menu prile quick info -->

      <br />

      <!-- sidebar menu -->
      <div id="sidebar-menu" class="main_menu_side hidden-print main_menu">

        <div class="menu_section">
          <h3>General</h3>
          <ul class="nav side-menu">
            <li><a href="#/"><i class="fa fa-home"></i> Dashboard </a>
            </li>
            <li><a><i class="fa fa-edit"></i> Helper <span class="fa fa-chevron-down"></span></a>
              <ul class="nav child_menu" style="display: none">
                <li><a href="#/helper">Add New Helpers</a>
                </li>
                <li><a href="form_advanced.html">List Helpers</a>
                </li>
            </ul>
        </li>



    </ul>
</div>


</div>
<!-- /sidebar menu -->

<!-- /menu footer buttons -->
<div class="sidebar-footer hidden-small">
    <a data-toggle="tooltip" data-placement="top" title="Settings">
      <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
  </a>
  <a data-toggle="tooltip" data-placement="top" title="FullScreen">
      <span class="glyphicon glyphicon-fullscreen" aria-hidden="true"></span>
  </a>
  <a data-toggle="tooltip" data-placement="top" title="Lock">
      <span class="glyphicon glyphicon-eye-close" aria-hidden="true"></span>
  </a>
  <a data-toggle="tooltip" data-placement="top" title="Logout">
      <span class="glyphicon glyphicon-off" aria-hidden="true"></span>
  </a>
</div>
<!-- /menu footer buttons -->
</div>
</div>

    <!-- top navigation -->
    <div class="top_nav">

    <div class="nav_menu">
      <nav class="" role="navigation">
        <div class="nav toggle">
          <a id="menu_toggle"><i class="fa fa-bars"></i></a>
      </div>

      <ul class="nav navbar-nav navbar-right">
          <li class="">
            <a href="javascript:;" class="user-profile dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
              <img src="images/img.jpg" alt="">John Doe
              <span class=" fa fa-angle-down"></span>
          </a>
          <ul class="dropdown-menu dropdown-usermenu pull-right">
              <li><a href="javascript:;">  Profile</a>
              </li>
              <li>
                <a href="javascript:;">
                  <span class="badge bg-red pull-right">50%</span>
                  <span>Settings</span>
              </a>
          </li>
          <li>
            <a href="javascript:;">Help</a>
        </li>
        <li><a href="login.html"><i class="fa fa-sign-out pull-right"></i> Log Out</a>
        </li>
    </ul>
</li>

<li role="presentation" class="dropdown">
    <a href="javascript:;" class="dropdown-toggle info-number" data-toggle="dropdown" aria-expanded="false">
      <i class="fa fa-envelope-o"></i>
      <span class="badge bg-green">6</span>
  </a>
  <ul id="menu1" class="dropdown-menu list-unstyled msg_list" role="menu">
      <li>
        <a>
          <span class="image">
            <img src="images/img.jpg" alt="Profile Image" />
        </span>
        <span>
            <span>John Smith</span>
            <span class="time">3 mins ago</span>
        </span>
        <span class="message">
            Film festivals used to be do-or-die moments for movie makers. They were where...
        </span>
    </a>
</li>
<li>
    <a>
      <span class="image">
        <img src="images/img.jpg" alt="Profile Image" />
    </span>
    <span>
        <span>John Smith</span>
        <span class="time">3 mins ago</span>
    </span>
    <span class="message">
        Film festivals used to be do-or-die moments for movie makers. They were where...
    </span>
</a>
</li>
<li>
    <a>
      <span class="image">
        <img src="images/img.jpg" alt="Profile Image" />
    </span>
    <span>
        <span>John Smith</span>
        <span class="time">3 mins ago</span>
    </span>
    <span class="message">
        Film festivals used to be do-or-die moments for movie makers. They were where...
    </span>
</a>
</li>
<li>
    <a>
      <span class="image">
        <img src="images/img.jpg" alt="Profile Image" />
    </span>
    <span>
        <span>John Smith</span>
        <span class="time">3 mins ago</span>
    </span>
    <span class="message">
        Film festivals used to be do-or-die moments for movie makers. They were where...
    </span>
</a>
</li>
<li>
    <div class="text-center">
      <a href="inbox.html">
        <strong>See All Alerts</strong>
        <i class="fa fa-angle-right"></i>
    </a>
</div>
</li>
</ul>
</li>

</ul>
</nav>
</div>

</div>
    <!-- /top navigation -->


    <!-- page content -->
    <div ui-view>
    </div>
    <!-- /page content -->

<!-- footer content -->
    <footer>
    <div class="pull-right">
      Gentelella - Bootstrap Admin Template by <a href="https://colorlib.com">Colorlib</a>
  </div>
  <div class="clearfix"></div>
</footer>
<!-- /footer content -->
</div>
</div>

<div id="custom_notifications" class="custom-notifications dsp_none">
    <ul class="list-unstyled notifications clearfix" data-tabbed_notifications="notif-group">
    </ul>
    <div class="clearfix"></div>
    <div id="notif-group" class="tabbed_notifications"></div>
</div>

<script src="js/bootstrap.min.js"></script>

<!-- gauge js -->
<script type="text/javascript" src="js/gauge/gauge.min.js"></script>
<script type="text/javascript" src="js/gauge/gauge_demo.js"></script>
<!-- bootstrap progress js -->
<script src="js/progressbar/bootstrap-progressbar.min.js"></script>
<!-- icheck -->
<script src="js/icheck/icheck.min.js"></script>
<!-- daterangepicker -->
<script type="text/javascript" src="js/moment/moment.min.js"></script>
<script type="text/javascript" src="js/datepicker/daterangepicker.js"></script>
<!-- chart js -->
<script src="js/chartjs/chart.min.js"></script>

<script src="js/custom.js"></script>

<!-- flot js -->
<!--[if lte IE 8]><script type="text/javascript" src="js/excanvas.min.js"></script><![endif]-->
<script type="text/javascript" src="js/flot/jquery.flot.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.pie.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.orderBars.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.time.min.js"></script>
<script type="text/javascript" src="js/flot/date.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.spline.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.stack.js"></script>
<script type="text/javascript" src="js/flot/curvedLines.js"></script>
<script type="text/javascript" src="js/flot/jquery.flot.resize.js"></script>
<script>
    $(document).ready(function() {
      // [17, 74, 6, 39, 20, 85, 7]
      //[82, 23, 66, 9, 99, 6, 2]
      var data1 = [
      [gd(2012, 1, 1), 17],
      [gd(2012, 1, 2), 74],
      [gd(2012, 1, 3), 6],
      [gd(2012, 1, 4), 39],
      [gd(2012, 1, 5), 20],
      [gd(2012, 1, 6), 85],
      [gd(2012, 1, 7), 7]
      ];

      var data2 = [
      [gd(2012, 1, 1), 82],
      [gd(2012, 1, 2), 23],
      [gd(2012, 1, 3), 66],
      [gd(2012, 1, 4), 9],
      [gd(2012, 1, 5), 119],
      [gd(2012, 1, 6), 6],
      [gd(2012, 1, 7), 9]
      ];
      $("#canvas_dahs").length && $.plot($("#canvas_dahs"), [
        data1, data2
        ], {
            series: {
              lines: {
                show: false,
                fill: true
            },
            splines: {
                show: true,
                tension: 0.4,
                lineWidth: 1,
                fill: 0.4
            },
            points: {
                radius: 0,
                show: true
            },
            shadowSize: 2
        },
        grid: {
          verticalLines: true,
          hoverable: true,
          clickable: true,
          tickColor: "#d5d5d5",
          borderWidth: 1,
          color: '#fff'
      },
      colors: ["rgba(38, 185, 154, 0.38)", "rgba(3, 88, 106, 0.38)"],
      xaxis: {
          tickColor: "rgba(51, 51, 51, 0.06)",
          mode: "time",
          tickSize: [1, "day"],
          //tickLength: 10,
          axisLabel: "Date",
          axisLabelUseCanvas: true,
          axisLabelFontSizePixels: 12,
          axisLabelFontFamily: 'Verdana, Arial',
          axisLabelPadding: 10
            //mode: "time", timeformat: "%m/%d/%y", minTickSize: [1, "day"]
        },
        yaxis: {
          ticks: 8,
          tickColor: "rgba(51, 51, 51, 0.06)",
      },
      tooltip: false
  });

      function gd(year, month, day) {
        return new Date(year, month - 1, day).getTime();
    }
});
</script>

<!-- worldmap -->
<script type="text/javascript" src="js/maps/jquery-jvectormap-2.0.3.min.js"></script>
<script type="text/javascript" src="js/maps/gdp-data.js"></script>
<script type="text/javascript" src="js/maps/jquery-jvectormap-world-mill-en.js"></script>
<script type="text/javascript" src="js/maps/jquery-jvectormap-us-aea-en.js"></script>
<!-- pace -->
<script src="js/pace/pace.min.js"></script>
<script>
    $(function() {
      $('#world-map-gdp').vectorMap({
        map: 'world_mill_en',
        backgroundColor: 'transparent',
        zoomOnScroll: false,
        series: {
          regions: [{
            values: gdpData,
            scale: ['#E6F2F0', '#149B7E'],
            normalizeFunction: 'polynomial'
        }]
    },
    onRegionTipShow: function(e, el, code) {
      el.html(el.html() + ' (GDP - ' + gdpData[code] + ')');
  }
});
  });
</script>
<!-- skycons -->
<script src="js/skycons/skycons.min.js"></script>
<script>
    var icons = new Skycons({
        "color": "#73879C"
    }),
    list = [
    "clear-day", "clear-night", "partly-cloudy-day",
    "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind",
    "fog"
    ],
    i;

    for (i = list.length; i--;)
      icons.set(list[i], list[i]);

  icons.play();
</script>

<!-- Doughnut Chart -->
<script>
    $('document').ready(function() {
      var options = {
        legend: false,
        responsive: false
    };

    new Chart(document.getElementById("canvas1"), {
        type: 'doughnut',
        tooltipFillColor: "rgba(51, 51, 51, 0.55)",
        data: {
          labels: [
          "Symbian",
          "Blackberry",
          "Other",
          "Android",
          "IOS"
          ],
          datasets: [{
            data: [15, 20, 30, 10, 30],
            backgroundColor: [
            "#BDC3C7",
            "#9B59B6",
            "#E74C3C",
            "#26B99A",
            "#3498DB"
            ],
            hoverBackgroundColor: [
            "#CFD4D8",
            "#B370CF",
            "#E95E4F",
            "#36CAAB",
            "#49A9EA"
            ]
        }]
    },
    options: options
});
});
</script>
<!-- /Doughnut Chart -->

<!-- datepicker -->
<script type="text/javascript">
    $(document).ready(function() {

      var cb = function(start, end, label) {
        console.log(start.toISOString(), end.toISOString(), label);
        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
        //alert("Callback has fired: [" + start.format('MMMM D, YYYY') + " to " + end.format('MMMM D, YYYY') + ", label = " + label + "]");
    }

    var optionSet1 = {
        startDate: moment().subtract(29, 'days'),
        endDate: moment(),
        minDate: '01/01/2012',
        maxDate: '12/31/2015',
        dateLimit: {
          days: 60
      },
      showDropdowns: true,
      showWeekNumbers: true,
      timePicker: false,
      timePickerIncrement: 1,
      timePicker12Hour: true,
      ranges: {
          'Today': [moment(), moment()],
          'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
          'Last 7 Days': [moment().subtract(6, 'days'), moment()],
          'Last 30 Days': [moment().subtract(29, 'days'), moment()],
          'This Month': [moment().startOf('month'), moment().endOf('month')],
          'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
      },
      opens: 'left',
      buttonClasses: ['btn btn-default'],
      applyClass: 'btn-small btn-primary',
      cancelClass: 'btn-small',
      format: 'MM/DD/YYYY',
      separator: ' to ',
      locale: {
          applyLabel: 'Submit',
          cancelLabel: 'Clear',
          fromLabel: 'From',
          toLabel: 'To',
          customRangeLabel: 'Custom',
          daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
          monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
          firstDay: 1
      }
  };
  $('#reportrange span').html(moment().subtract(29, 'days').format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));
  $('#reportrange').daterangepicker(optionSet1, cb);
  $('#reportrange').on('show.daterangepicker', function() {
    console.log("show event fired");
});
  $('#reportrange').on('hide.daterangepicker', function() {
    console.log("hide event fired");
});
  $('#reportrange').on('apply.daterangepicker', function(ev, picker) {
    console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
});
  $('#reportrange').on('cancel.daterangepicker', function(ev, picker) {
    console.log("cancel event fired");
});
  $('#options1').click(function() {
    $('#reportrange').data('daterangepicker').setOptions(optionSet1, cb);
});
  $('#options2').click(function() {
    $('#reportrange').data('daterangepicker').setOptions(optionSet2, cb);
});
  $('#destroy').click(function() {
    $('#reportrange').data('daterangepicker').remove();
});
});
</script>
<script>
    NProgress.done();
</script>
<!-- /datepicker -->
<!-- /footer content -->
</body>

</html>

1 个答案:

答案 0 :(得分:0)

@saddam,是的,你可以用旗帜做到这一点。

使用ng-if =“toggleHeader”在Header.html文件中创建两个varous内容。

  1. 一个内容用于显示登录前,即toggleHeader为FALSE。
  2. 登录成功后,将加载另一个内容。我们必须将toggleHeader设置为'TRUE'
  3. 步骤: 1.打开登录界面。 2.提供登录凭据,一旦BackEnd Call获得成功,设置一个标志值,即$ scope.toggleHeader = true;通过$ stateParams发送这些值 就是这样,你的任务就完成了。

    请在此处回复任何疑问,以防万一。