欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AngularJS实战之路由ui-view

程序员文章站 2022-06-12 09:54:43
...
1. 路由(ui-router)
1.1. 环境
1) angular.min.js
2) angular-ui-router-0.2.10.js
3) 确保确保包含ui.router为模块依赖关系.
4) var app=angular.module("app",['ui.router']);

1.1. 视图激活方式
1) $state.Go():优先级较高的便利方式
2) ui-sref:点击包含此指令跳转
3) url:url导航

1.2. 多视图
Views:
使用views属性设置多个视图。如果在单一状态下不需要多个视图,则不需要此属性。提示:请记住,通常嵌套视图比多个兄弟视图更有用和更强大。
代码:准备四个页面  主页面和三个子页面
主页面
<!DOCTYPE html>
<html ng-app="app">
<head>
<title>多视图</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="plugins/bootstrap/css/bootstrap.min.css"
	type="text/css"></link>
</head>
<body>
<div class="container">
	<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
        <a class="navbar-brand" href="#">柳絮飞祭奠</a>
    </div>
    <div>
        <ul class="nav navbar-nav">
            <li><a ui-sref="index2">onepage</a></li>
            <li><a ui-sref="index1">twopage</a></li>
        </ul>
    </div>
    </div>
</nav>
</div>
<div ui-view></div>
<div ui-view="index1"></div>
<div ui-view="index2"></div>
</body>
<script type="text/javascript"
	src="plugins/angular/angular.min-1.4.6.js"></script>
	<script type="text/javascript" src="plugins/angular/angular-ui-router-0.2.10.js"></script>
<script type="text/javascript">
	var app=angular.module("app",['ui.router']);
	app.config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider){
			$stateProvider.state('index1', {
				url : '/index1',
				views:{
					"index1":{
				    templateUrl: '/CeShi/lx/uiroute/index1.html'
				},
					"index2":{
					templateUrl : '/CeShi/lx/uiroute/index2.html'
				}
				}
			}).state('index2', {
				url : '/index2',
				templateUrl: '/CeShi/lx/uiroute/index3.html'
			});
			$urlRouterProvider.otherwise('/index2');
}]).config(function($sceProvider){
	$sceProvider.enabled(false);
});
</script>
</html>

三个子页面index1.html,index2.html,index3.html分别为
<h1>我是视图一</h1>
<h1>我是视图二</h1>
<h1>我是视图三</h1>
效果为
AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  
AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  
1.3.嵌套视图
依旧四个页面一个主页面一个子页面两个嵌套页面

主页面
<!DOCTYPE html>
<html ng-app="app">
<head>
<title>嵌套视图</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../plugins/bootstrap/css/bootstrap.min.css" type="text/css"></link>
</head>
<body>
<div class="container">
	<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
        <a class="navbar-brand" href="#">柳絮飞祭奠</a>
    </div>
    </div>
</nav>
</div>
<div ui-view></div>
</body>
<script type="text/javascript" src="../../plugins/angular/angular.min-1.4.6.js"></script>
	<script type="text/javascript" src="../../plugins/angular/angular-ui-router-0.2.10.js"></script>
<script type="text/javascript">
	var app=angular.module("app",['ui.router']);
app.config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider){
			$stateProvider.state('index2', {
				url : '/index2',
				templateUrl : '/Angular/uiview/nested/index2.html'
			}).state('index2.one',{
	        	url:'/nested',
                templateUrl: '/Angular/uiview/nested/index1.html'
	        }).state('index2.two',{
	        	url:'/nested',
                templateUrl: '/Angular/uiview/nested/index3.html'
	        });
			$urlRouterProvider.otherwise('/index2');
}]).config(function($sceProvider){
	$sceProvider.enabled(false);
});
</script>
</html>

子页面
<div class="container">
	<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
        <a class="navbar-brand" href="#">柳絮飞祭奠</a>
    </div>
    <div>
        <ul class="nav navbar-nav">
            <li class="active"><a ui-sref="index2.one">onepage</a></li>
            <li><a ui-sref="index2.two">twopage</a></li>
        </ul>
    </div>
    </div>
</nav>
</div>
<div ui-view></div>


嵌套页面

<h1>我是视图一</h1>
<h1>我是视图三</h1>
效果:

AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  

  • AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  
  • 大小: 11.2 KB
  • AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  
  • 大小: 9.5 KB
  • AngularJS实战之路由ui-view
            
    
    博客分类: AngularJS  
  • 大小: 22.5 KB