***今天讲一下angularJs的路由功能:

一:angularJs路由。

1.AngularJS 路由允许我们通过不同的 URL 访问不同的内容。
2.通过 AngularJS 可以实现多视图的单页Web应用 。
3.通常我们的URL形式为 http://网址/first/page,但在单页Web应用中 AngularJS 通过 # + 标记 实现 。
例如:

http://hengboit.com/#/first
http://hengboit.com/#/second
http://hengboit.com/#/third

当我们点击以上的任意一个链接时,向服务端请的地址都是一样的 。 因为 # 号之后的内容在向服务端请求时会被浏览器忽略掉。 所以我们就需要在客户端实现 # 号后面内容的功能实现。 AngularJS 路由 就通过 # + 标记 帮助我们区分不同的逻辑页面并将不同的页面绑定到对应的控制器上。

二:路由实例及讲解。

<script src="js/angular.min.js"></script>
<script src="js/angular-route.min.js"></script>
<div ng-app="myapp">
<ul>
<li><a href="#/">首页</a></li>
<li><a href="#/about">关于我们</a></li>
<li><a href="#/news">新闻动态</a></li>
<li><a href="#/lianxi">联系方式</a></li>
</ul> <div ng-view></div>
</div>
<script>
angular.module('myapp',['ngRoute'])
.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/about',{template:'这是关于我们页面'})
.when('/lianxi',{template:'这是联系方式页面'})
.otherwise({redirectTo:'/'});
}]);
</script>

注意:使用路由要记得引入路由route的js文件。

以下是这个实例的讲解:

1.载入了实现路由的 js 文件:angular-route.js。
2.包含了 ngRoute 模块作为主应用模块的依赖模块。 angular.module('myapp',['ngRoute'])
3.使用 ngView 指令。<div ng-view></div>  ,该 div 内的 HTML 内容会根据路由的变化而变化。
4.配置 $routeProvider,用来定义路由规则。
 (1)config 函数用于配置路由规则
(2)$routeProvider.whenAPI来定义我们的路由规则
a.第一个参数是 URL 或者 URL 正则规则
b.第二个参数是路由配置对象。

三:路由设置对象。

路由配置对象的语法规则:

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

参数说明:

template:在 ng-view 中插入简单内容,使用该参数
templateUrl:在 ng-view 中插入 HTML 模板文件时,使用该参数
controller: function、string或数组类型,在当前模板上执行的controller函数,生成新的scope
controllerAs:为controller指定别名
redirectTo:重定向的地址。
resolve:指定当前controller所依赖的其他模块。

四:最后写一个使用模板的实例。

 <div ng-app="mapp">
<script type="text/ng-template" id="view/list.html">
<h3>这是列表页</h3>
<ul>
<li ng-repeat="id in mm"><a href="#/list/{{ id }}"> ID{{ id }}</a></li>
</ul>
</script>
<a href=“#/list”>打开列表页</a>
<div ng-view></div>
</div>
<script src="../js/angular.min.js"></script>
<script src="../js/angular-route.min.js"></script>
<script>
var app=angular.module('mapp',['ngRoute']);
app.config(['$routeProvider',function($routeProvider){
$routeProvider.when("/list",{templateUrl:"view/list.html",controller: 'listcontroller'});
$routeProvider.otherwise({redirectTo:''});
}]);
app.controller("listcontroller",function($scope){
$scope.mm=[1,2,3,4,5];
})
</script>

AngularJs之八的更多相关文章

  1. angularjs学习之八(angularjs中isolate scope的使用)

    angular js中指令directive有个特别实用的东西,那就是 isolate scope (被隔离的scope) 关于详细他和全局的scope 有什么差别.能够參考以下这篇博文: Angul ...

  2. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

    什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...

  3. AngularJs之九(ending......)

    今天继续angularJs,但也是最后一篇关于它的了,基础部分差不多也就这些,后续有机会再写它的提升部分. 今天要写的也是一个基础的选择列表: 一:使用ng-options,数组进行循环. <d ...

  4. AngularJS过滤器filter-保留小数,小数点-$filter

    AngularJS      保留小数 默认是保留3位 固定的套路是 {{deom | number:4}} 意思就是保留小数点 的后四位 在渲染页面的时候 加入这儿个代码 用来精确浮点数,指定小数点 ...

  5. Angular企业级开发(1)-AngularJS简介

    AngularJS介绍 AngularJS是一个功能完善的JavaScript前端框架,同时是基于MVC(Model-View-Controller理念的框架,使用它能够高效的开发桌面web app和 ...

  6. 模拟AngularJS之依赖注入

    一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...

  7. 步入angularjs directive(指令)--点击按钮加入loading状态

    今天我终于鼓起勇气写自己的博客了,激动与害怕并存,希望大家能多多批评指导,如果能够帮助大家,也希望大家点个赞!! 用angularjs 工作也有段时间了,总体感觉最有挑战性的还是指令,因为没有指令的a ...

  8. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  9. 玩转spring boot——结合jQuery和AngularJs

    在上篇的基础上 准备工作: 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

随机推荐

  1. 关于自己写C++的一点风格

    现在,我学了很长时间的C++,但是自己就是无法精通.许多知识是入门书上没有的.现在写C++最重要的就是风格问题. 我现在的C++风格: 把自己所有的东西都放在一个名称空间下. 没有全局的函数,有的函数 ...

  2. 如何用百度MIP快速搭建体验友好的移动页面

    在读这篇文章之前,请确定你已经了解MIP定义及加速原理.如果不确定的话,可以到MIP官网了解. 改造前期准备和注意事项: 你可以选择直接将原先的移动站点直接改成MIP站,也可以单独再做一套MIP站点与 ...

  3. 【趣事】用 JavaScript 对抗 DDOS 攻击 (下)

    上一篇:http://www.cnblogs.com/index-html/p/js-network-firewall.html 对抗 v2 之前的那些奇技淫巧,纯属娱乐而已,并不能撑多久. 但简单. ...

  4. 再讲IQueryable<T>,揭开表达式树的神秘面纱

    接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...

  5. $.extend()的实现源码 --(源码学习1)

    目标: $.extend({         add:function(a,b){             return a + b;         }     }) console.log($.a ...

  6. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  7. 神马玩意,EntityFramework Core 1.1又更新了?走,赶紧去围观

    前言 哦,不搞SQL了么,当然会继续,周末会继续更新,估计写完还得几十篇,但是我会坚持把SQL更新完毕,绝不会烂尾,后续很长一段时间没更新的话,不要想我,那说明我是学习新的技能去了,那就是学习英语,本 ...

  8. 利用apply()或者rest参数来实现用数组传递函数参数

    关于call()和apply()的用法,MDN文档里写的非常清晰明白,在这里就不多做记录了. https://developer.mozilla.org/zh-CN/docs/Web/JavaScri ...

  9. 分享两种实现Winform程序的多语言支持的解决方案

    因公司业务需要,需要将原有的ERP系统加上支持繁体语言,但不能改变原有的编码方式,即:普通程序员感受不到编码有什么不同.经过我与几个同事的多番沟通,确定了以下两种方案: 方案一:在窗体基类中每次加载并 ...

  10. 封装集合(Encapsulate Collection)

    封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类 ...