如何使用AngularJs将一个页面导航到另一个页面

前端之家收集整理的这篇文章主要介绍了如何使用AngularJs将一个页面导航到另一个页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何从一个页面导航到另一个页面.假设我有一个登录页面,在输入用户名和密码fileds后点击提交按钮需要验证,如果用户名和密码都正确,则需要进入主页.主页内容需要显示.我在这里发布代码.在浏览器中,网址正在发生变化,但内容未发生变化.

的index.html

<html ng-app='myApp'>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"/>
<script
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script
    src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
</head>

<body >
    <div id='content' ng-controller='LoginController'>
        <div class="container">
            <form class="form-signin" role="form" ng-submit="login()">
                <h3 class="form-signin-heading">Login Form</h3>
                <span><b>Username :</b>&nbsp; <input type="username"
                    class="form-control" ng-model="user.name" required> </span> </br>
                </br> <span><b>Password :</b>&nbsp;&nbsp; <input type="password"
                    class="form-control" ng-model="user.password" required> </span> 
                <br><br>                
                <button class="btn btn-lg btn-primary btn-block" type="submit">
                    <b>Sign in</b>
                </button>
            </form>
        </div>
        <!-- /container -->
    </div>
    <script src='test.js' type="text/javascript"></script>
</body>
</html>

home.html的

Hello I am  from Home page

test.js

var applog = angular.module('myApp',['ngRoute']);

applog.config([ '$routeProvider','$locationProvider',function($routeProvider,$locationProvider) {   
        $routeProvider.when('/home',{
            templateUrl : 'home.html',controller : 'HomeController'
        }).otherwise({
            redirectTo : 'index.html'
        });
        //$locationProvider.html5Mode(true); //Remove the '#' from URL.
    } 
]);

applog.controller("LoginController",function($scope,$location) {
    $scope.login = function() {
        var username = $scope.user.name;
        var password = $scope.user.password;
        if (username == "admin" && password == "admin") {
            $location.path("/home" );
        } else {
            alert('invalid username and password');
        }
    };
});

applog.controller("HomeController",$location) {

});
正如@dfsq所说,你需要一个ng-view来放置你的新视图.当然,如果您在索引中添加ng-view,您将看到索引和home的内容.这里的解决方案是创建两个部分视图,一个用于登录身份验证,另一个用于主页.索引文件应仅包含ng-view以及要在整个应用程序中保持不变的元素(菜单,页脚…)

这是我所说的代码
的index.html

<html ng-app='myApp'>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"/>
<script
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script
    src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
 <script src='test.js' type="text/javascript"></script>
</head>

<body >
    <div ng-view></div>
    <script src='test.js' type="text/javascript"></script>
</body>
</html>

您的新路线配置

applog.config([ '$routeProvider',$locationProvider) {
        $routeProvider.when('/home',controller : 'HomeController'
        })
        $routeProvider.when('/',{
            templateUrl : 'auth.html',controller : 'LoginController'
        }).otherwise({
            redirectTo : 'index.html'
        });
        //$locationProvider.html5Mode(true); //Remove the '#' from URL.
    }
]);

并将您的登录代码放在auth.html文件

<div id='content' ng-controller='LoginController'>
        <div class="container">
            <form class="form-signin" role="form" ng-submit="login()">
                <h3 class="form-signin-heading">Login Form</h3>
                <span><b>Username :</b>&nbsp; <input type="username"
                    class="form-control" ng-model="user.name" required> </span> </br>
                </br> <span><b>Password :</b>&nbsp;&nbsp; <input type="password"
                    class="form-control" ng-model="user.password" required> </span> 
                <br><br>                
                <button class="btn btn-lg btn-primary btn-block" type="submit">
                    <b>Sign in</b>
                </button>
            </form>
        </div>
        <!-- /container -->
    </div>

请记住,如果将test.js脚本放在索引中,它将在整个应用程序中.

希望能帮助到你

猜你在找的Angularjs相关文章