angularjs路由小案例

本文介绍了一个AngularJS路由的小案例,展示了如何在点击不同导航链接时,利用路由原理(锚点)实现界面内容更换而无实际页面跳转。通过关键代码展示,帮助理解路由实现过程。
摘要由CSDN通过智能技术生成

一.点击不同导航链接显示不同的界面,但是不去页面跳转

   (路由的原理就是通过锚点来完成的)

效果图:(关键代码已用红色渲染)


代码:

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
      
      .content {
      	width: 960px;
      	margin: 0 auto;
      }
      nav {
      	
      	height: 30px;
      	margin: 40px auto;
        background-color: black;
        border-radius: 8px;
      }
      li,a{
      	margin: 0;
      	padding: 0;
      	list-style: none;

      }
      li {
      	display: inline-block;
      }
      a {
      	display: block;
      	text-align: center;
      	width: 100px;
      	height: 30px;
      	line-height: 30px;
      	text-decoration: none;
      	color: white;
      }
      a:hover{
      	background-color: #aaa;
      }
      footer {
      	background-color: black;
      	width: 100%;
      	height: 200px;
      }
	</style>
</head>
<body ng-app="app">
	<nav class="content">
		<ul>
			<li><a href="#/index">主页</a></li>
			<li><a href="#/view">展示</a></li>
			<li><a href="#/login">登录</a></li>
		</ul>
	</nav>
	<div class="content">
		<div ng-view="">
    </div>

	</div>
	<script src=js/angular.min.js></script>
	<script src=js/angular-route.min.js></script>
	<script type="text/javascript">
       var app = angular.module('app',['ngRoute']);
       app.config(['$routeProvider',function($routeProvider){
       	$routeProvider.when('/index',{
           templateUrl:'tem.html',
           controller:'indexctrl'
       	}).when('/view',{
           template:'你好这是展示界面'
         }).when('/login',{
         	templateUrl:'s.html',//点击登录的跳转界面
         	controller:'loginctrl'//给s.html指定控制器
         }).otherwise({
            templateUrl:'tem.html'
         })
       	;
       }]);
        app.controller('indexctrl',['$scope','$http','$routeParams',function($scope,$http,$routeParams){
           console.log($routeParams); 
       }]);
       app.controller('loginctrl',['$scope','$http',function($scope,$http){
           $http({
           	url:'stars.php',//去后台获取相关数据
           }).success(function(info){
           	   $scope.name = info[0].name;//处理返回的数据
           });
       }]);
	</script>
</body>
</html>


stars.php:
<?php 
  $result =  file_get_contents('stars.json');
  echo $result;   
?>


stars.json:

[
	{
		"name": "王力宏",
		"photo": "./images/wlh.jpg",
		"ablum": "<<改变自已>>",
		"age": 39,
		"sex": "男"
	},
	{
		"name": "王力宏",
		"photo": "./images/wlh.jpg",
		"ablum": "<<改变自已>>",
		"age": 39,
		"sex": "男"
	},
	{
		"name": "王力宏",
		"photo": "./images/wlh.jpg",
		"ablum": "<<改变自已>>",
		"age": 39,
		"sex": "男"
	},
	{
		"name": "王力宏",
		"photo": "./images/wlh.jpg",
		"ablum": "<<改变自已>>",
		"age": 39,
		"sex": "男"
	}
]


二:网易云音乐小案例

效果图:


index.html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>音乐列表</title>
	<style type="text/css">
        body {
        	padding: 0;
        	margin: 0;
        }
        ol {
        	padding-top: 0;
        	margin: 0;
            min-height: 400px;
            border:1px solid #ccc;
        }
        ol li {
            line-height: 40px;
        }
        ol li:hover{
            background-color: #ccc;
        }
        .music {
        	width: 600px;
        	margin: 100px auto;

        }
        .music nav {
        	height: 40px;
        	background-color: #000;
        	display: flex;
        }
        .music nav a {
        	flex:1;
        	text-align: center;
        	line-height: 40px;
        	text-decoration: none;
            color:#fff;
        }
        .music nav a:hover {
            background-color: rgba(255,255,255,0.5);
        }
	</style>
</head>
<body ng-app="Music">
	
    <div class="music">
    	<nav>
        <!-- 后端会说明需要什么类型参数 -->
        <!-- 需要一个类型id 1,2,3,4 -->
        <!-- 1表示流行,2表示华语-->
    		<a href="#/1">流行</a>
    		<a href="#/2">华语</a>
    		<a href="#/3">欧美</a>
    		<a href="#/4">日韩</a>
    	</nav>
        <ol>
        	<div ng-view="">
                
            </div>
        </ol>
    </div>

	<script src="../../js/angular.min.js"></script>
	<script src="../../js/angular-route.min.js"></script>
	<script>
         var Music = angular.module('Music',['ngRoute']);
         Music.config(['$routeProvider',function($routeProvider) {
            //通过后台数据分析实现不同界面主要是通过传参
             $routeProvider.when('/:id',{
               templateUrl:'../views/list.html',
               controller:'musictrl'
             });
             
         }]);
         Music.controller('musictrl',['$scope','$http','$routeParams',function($scope,$http,$routeParams){
            //
           var id = $routeParams.id;
           $http({
            url:'list.php',
            params:{
                pid:id  //后台需要pid,1或2或3或4
            }
           }).success(function(info){
            $scope.lists = info;
           });

         }]);
	</script>
</body>
</html>

list.php:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>音乐列表</title>
	<style type="text/css">
        body {
        	padding: 0;
        	margin: 0;
        }
        ol {
        	padding-top: 0;
        	margin: 0;
            min-height: 400px;
            border:1px solid #ccc;
        }
        ol li {
            line-height: 40px;
        }
        ol li:hover{
            background-color: #ccc;
        }
        .music {
        	width: 600px;
        	margin: 100px auto;

        }
        .music nav {
        	height: 40px;
        	background-color: #000;
        	display: flex;
        }
        .music nav a {
        	flex:1;
        	text-align: center;
        	line-height: 40px;
        	text-decoration: none;
            color:#fff;
        }
        .music nav a:hover {
            background-color: rgba(255,255,255,0.5);
        }
	</style>
</head>
<body ng-app="Music">
	
    <div class="music">
    	<nav>
        <!-- 后端会说明需要什么类型参数 -->
        <!-- 需要一个类型id 1,2,3,4 -->
        <!-- 1表示流行,2表示华语-->
    		<a href="#/1">流行</a>
    		<a href="#/2">华语</a>
    		<a href="#/3">欧美</a>
    		<a href="#/4">日韩</a>
    	</nav>
        <ol>
        	<div ng-view="">
                
            </div>
        </ol>
    </div>

	<script src="../../js/angular.min.js"></script>
	<script src="../../js/angular-route.min.js"></script>
	<script>
         var Music = angular.module('Music',['ngRoute']);
         Music.config(['$routeProvider',function($routeProvider) {
            //通过后台数据分析实现不同界面主要是通过传参
             $routeProvider.when('/:id',{
               templateUrl:'../views/list.html',
               controller:'musictrl'
             });
             
         }]);
         Music.controller('musictrl',['$scope','$http','$routeParams',function($scope,$http,$routeParams){
            //
           var id = $routeParams.id;
           $http({
            url:'list.php',
            params:{
                pid:id  //后台需要pid,1或2或3或4
            }
           }).success(function(info){
            // console.log(info);
            $scope.lists = info;
           });

         }]);
	</script>
</body>
</html>
list.html:

<li ng-repeat="x in lists">{{x.text}}</li>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值