AngularJS通过ng-route实现基本的路由功能实例详解


Posted in Javascript onDecember 13, 2016

本文实例讲述了AngularJS通过ng-route实现基本的路由功能。分享给大家供大家参考,具体如下:

为什么需要前端路由~

(1)AJAX不会留下History历史记录

(2)用户无法通过URL进入应用指定的页面(书签或者分享等)

(3)AJAX对于SEO是一个灾难

1.一般情况下,我们访问网页的时候,是通过url地址。
比如我们访问一个网页:https://www.baidu.com/index/fix.html

在AngularJS中通过“#”来进行不同页面的路由,比如:
https://www.baidu.com/#/first,这个请求在向网页端传输的时候,服务器会自动忽略#之后的内容,因此可以根据#+标记帮助我们区分不同的逻辑页面并将不同的页面绑定到对应的控制器上。

AngularJS通过ng-route实现基本的路由功能实例详解

这是一个简单的路由控制界面,根据链接中的#/first和#/second分别对应跳转到不同的页面。

2.通过angularjs中的路由模块,实现ng-route的步骤

(1)载入包含ng-route的JS文件

(2)包含了 ngRoute 模块作为主应用模块的依赖模块。

(3)使用原生指令ng-view

(4)我们在html中定义链接,可以实现一个单页应用,比如链接可以这样定义:

<body>
 <ul>
  <li><a href="#/">首页</a></li>
  <li><a href="#/first">第一页面</a></li>
  <li><a href="#/second">第二页面</a></li>
  <li><a href="#/third">第三页面</a></li>
</ul>
  <div ng-view></div>
</body>

在js中的定义路由代码为:

angular.module('myapp',['ngRoute'])
.config(['$routeProvider',function($routeProvider){
  $routeProvider.when('/',{template:'这是首页页面'})
         .when('/first',{template:'这是第一个页面'})
         .when('/second',{template:'这是第二个页面'})
         .when('/third',{template:'这是第三个页面'})
         .otherwise({redirectTo:'/'});
}]);

(6)我们来看效果,首次当未有链接切换时候,默认的跳转到首页,效果如下:

当依次点击链接时,会依次切换ng-view中的值,并且实现了ng-view内内容的替换~

I)初始效果

AngularJS通过ng-route实现基本的路由功能实例详解

II)切换后的效果

AngularJS通过ng-route实现基本的路由功能实例详解

我们发现改变的仅仅是#后的值,并没有页面的跳转和刷新

3.angularJS中的路由设置对象

AngularJS 路由也可以通过不同的模板来实现。

$routeProvider.when 函数的第一个参数是 URL 或者 URL 正则规则,第二个参数为路由配置对象。

路由配置对象语法规则如下:

$routeProvider.when(url, {
  template: string,
  templateUrl: string,
  controller: string, function 或 array,
  controllerAs: string,
  redirectTo: string, function,
  resolve: object<key, function>
});

参数解释:

(1)template:

使用该概述,可以在template中写入HTML内容,典型的例子是:

when('/',{template:'这是首页页面'})

(2)templateUrl:
如果现在我们并不是要HTML内容,而是需要一个模板文件来进行整体替换,例子如下:

$routeProvider.when('/computers', {
  templateUrl: 'views/computers.html',
});

(3)controller:function、string或数组类型,在当前模板上执行的controller函数,生成新的scope。
也可以对应的是控制器的名称。

(4)redirectTo:重定向的地址

(5)resolve:当前控制器所依赖的其他模块~

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
Javascript匿名函数的一种应用 代码封装
Jun 27 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
jQuery基础知识小结
Dec 22 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
iframe中使用jquery进行查找的方法【案例分析】
Jun 17 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
Aug 19 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 Javascript
jQuery Easyui datagrid连续发送两次请求问题
Dec 13 #Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
Dec 13 #Javascript
JS声明式函数与赋值式函数实例分析
Dec 13 #Javascript
jQuery内存泄露解决办法
Dec 13 #Javascript
Angular 常用指令实例总结整理
Dec 13 #Javascript
jQuery UI制作选项卡(tabs)
Dec 13 #Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 #Javascript
You might like
实用函数10
2007/11/08 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
python清除字符串里非字母字符的方法
2015/07/02 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
Python flask框架post接口调用示例
2019/07/03 Python
python实现的Iou与Giou代码
2020/01/18 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
详解python polyscope库的安装和例程
2020/11/13 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
母校寄语大全
2014/04/10 职场文书
高三学生评语大全
2014/04/25 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
幼儿园感谢信
2015/01/21 职场文书
违纪检讨书
2015/01/27 职场文书
个人简历求职信范文
2015/03/20 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
详解PyTorch模型保存与加载
2022/04/28 Python