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的caller,callee,call,apply
Apr 28 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
将字符串中由空格隔开的每个单词首字母大写
Apr 06 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
浅谈jQuery构造函数分析
May 11 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
Dec 07 Javascript
在 webpack 中使用 ECharts的实例详解
Feb 05 Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 Javascript
Vue插件之滑动验证码用法详解
Apr 05 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 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
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php中apc缓存使用示例
2013/12/25 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
AngularJS内置指令
2015/02/04 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python挖矿算力测试程序详解
2019/07/03 Python
django框架cookie和session用法实例详解
2019/12/10 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
python初步实现word2vec操作
2020/06/09 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
Java基础知识面试要点
2016/07/29 面试题
开工仪式策划方案
2014/05/23 职场文书
个人委托书范本
2014/09/13 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
微信搭讪开场白
2015/05/28 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP