`

AngularJS实战之路由ui-view

 
阅读更多
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>
效果为


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>
效果:



  • 大小: 11.2 KB
  • 大小: 9.5 KB
  • 大小: 22.5 KB
分享到:
评论

相关推荐

    AngularJS ui-router (嵌套路由) - OPEN 开发经验库2

    【AngularJS ui-router (嵌套路由)】 在AngularJS中,路由是用于处理应用程序导航和视图呈现的核心机制。ui-router是AngularJS的一个第三方模块,它扩展了原生的ng-route,提供了更强大的功能,包括支持嵌套路由和...

    AngularJS实战 PDF

    框架通过MVC(Model-View-Controller)架构模式来组织代码,提供了依赖注入系统,使得组件之间的耦合度降低,提高了代码的可测试性和可维护性。 **二、模块(Module)** 在AngularJS中,应用通常以模块(Module)的...

    angularJS权威学习指南手册

    AngularJS通过MVC(Model-View-Controller)架构模式提供了一个全面的解决方案,它将数据绑定和依赖注入等特性融入到HTML中,使得开发者可以专注于业务逻辑,而无需过多关注DOM操作。这个框架的主要目标是提高开发...

    angularJs权威和精通angularjs

    AngularJS遵循Model-View-Controller(MVC)模式,分离了业务逻辑、视图呈现和用户交互。这有助于代码的组织和可维护性,让团队协作更为高效。 **4. Directives:** AngularJS的指令是用于扩展HTML的一种机制,如ng...

    angularjsdemo

    AngularJS是一个强大的MVC(Model-View-Controller)框架,它简化了客户端开发,提供了双向数据绑定、模块化、路由、服务等特性,使开发者能够构建高效且可维护的应用程序。 【压缩包子文件的文件名称列表】: 1. ...

    angularjs基础教程(经典)含node.js安装

    ### 四、AngularJS实战 在实际项目中,你可能需要编写各种类型的AngularJS应用,例如: - **CRUD应用**:使用$http服务与后台API交互,实现增删查改功能。 - **表单验证**:利用内置的表单和指令进行客户端验证,...

    AngularJs权威指南(高清版)

    2. **MVC模式**:AngularJS遵循Model-View-Controller架构,将应用程序分为三个部分,简化了代码组织和管理。 3. **指令系统**:AngularJS扩展了HTML,引入自定义指令,如`ng-repeat`、`ng-if`等,使页面动态化和...

    疯狂前端开发讲义 jQuery AngularJS Bootstrap前端开发实战

    1. 数据绑定:双向数据绑定是AngularJS的标志性特性,使得模型(model)和视图(view)之间能自动保持同步。 2. 依赖注入:AngularJS的DI系统可以自动管理对象的依赖关系,减少代码耦合。 3. 指令:自定义指令允许...

    AngularJS权威指南_angularjs_

    AngularJS的`ngRoute`模块或更现代的`ui-router`提供了页面间导航的解决方案,实现了基于URL的视图切换,支持参数传递和嵌套路由。 9. **表单处理和验证** AngularJS提供了内置的表单和字段验证机制,如`ng-model...

    AngularJS实用开发技巧(推荐)

    - **MVC**:Model-View-Controller架构,将应用程序分为模型、视图和控制器三个部分,提高代码的组织性和可维护性。 - **模块化**:通过`ngModule`定义和管理应用程序的各个部分,便于代码复用和组织。 - **指令...

    angularjs_demoapp1

    《AngularJS实战应用详解——基于angularjs_demoapp1的探索》 AngularJS,作为Google推出的一款前端MVC框架,以其强大的数据绑定和依赖注入特性在Web开发领域占据了一席之地。本文将通过分析名为"angularjs_demoapp...

    angularjs-beginner:angularjs初学者

    AngularJS是一种MVC(Model-View-Controller)框架,它通过双向数据绑定简化了DOM操作,使开发者可以专注于业务逻辑而不是页面的繁琐更新。它的核心特性包括指令系统、依赖注入和模块化,极大地提高了开发效率。 **...

    PhoneCat:使用 Angularjs 的目录应用程序

    7. **路由(Routing)**:AngularJS的ngRoute或ui-router模块用于管理页面导航和状态,使得在单页应用中可以实现平滑的页面切换,而无需重新加载整个页面。 **二、PhoneCat应用结构** 1. **模型(Model)**:...

    Ionic移动开发入门与实战源代码

    2. **AngularJS集成**:AngularJS是Google维护的前端MVVM(Model-View-ViewModel)框架,它使得数据绑定和依赖注入成为可能。在Ionic中,开发者可以充分利用AngularJS的强大功能,如指令、服务和过滤器,来处理复杂...

    angularJS_practice

    **AngularJS实战指南** AngularJS,作为一款由Google维护的前端JavaScript框架,是构建动态Web应用的强大工具。它以其数据绑定和依赖注入等特性而闻名,极大地简化了开发过程,提高了开发效率。在这个"angularJS_...

    coursera-solutions:使用AngularJS学习一页Web应用程序

    9. 路由:AngularJS的`ngRoute`模块或`ui-router`库提供了页面路由功能,可以根据URL改变加载不同的视图。 在学习过程中,你可能会遇到一些关键概念,如Scope(作用域)、Directives(指令)、Controllers(控制器...

    hello-angular-student-portal:AngularJS的第一个项目,使用Spring用于后端,以及Jersey REST用于Web服务集成方面

    Spring框架是一个全面的企业级应用开发框架,它为Java开发提供了丰富的功能,包括但不限于依赖注入、AOP(面向切面编程)、MVC(Model-View-Controller)架构模式、数据访问、事务管理等。在这个项目中,Spring将被...

    BNDApp:书籍隔壁的 AngularJs 离子应用程序

    AngularJS,由 Google 维护,是一款强大的 Model-View-Controller (MVC) 框架,用于构建动态 Web 应用程序。它的核心特性包括数据绑定、依赖注入、指令系统和模块化,极大地提高了开发效率。AngularJS 通过双向数据...

    angular+webpack2实战例子

    在本文中,我们将探讨如何将Angular与Webpack 2结合使用,构建一个实战项目。Webpack是一个模块打包工具,它能够将JavaScript、CSS、图片等资源进行处理、打包,并生成适合生产环境的静态资源。Angular,尤其是...

Global site tag (gtag.js) - Google Analytics