ngRoute
ngRoute
模块中包含以下内容,
名称 | 所属 | 作用 |
---|---|---|
ngView |
DIRECTIVE | 提供不同路由模板插入的视图层 |
$routeProvider |
PROVIDER | 提供路由配置 |
$route |
SERVICE | 用于构建各个路由的url、view、controller这三者的关系 |
$routeParams |
SERVICE | 解析返回路由中带有的参数 |
- 在主模板中使用
ngView
定义一个路由模板的视图层。不同路由对应的模板将会插入到这个ngView
所在的dom元素下。 - 使用
$routeProvider
进行路由配置,包括每一个路由对应的url,template以及controller。除了这些基本的配置之外,还会有一些额外的配置,比如resolve
配置等。 - 在每个路由的controller中完成对应的业务逻辑。
- 可以通过注入
$routeParams
服务来获取路由url上的参数;还可以通过$rootScope
来监控$routeChangeStart
和$routeChangeSuccess
事件。
<body ng-app="demo001" ng-controller="Demo">
<h1>Angular Route Demo</h1>
<hr>
<div>
<a href="#/home">home</a>
<a href="#/post">post</a>
<a href="#/about">about</a>
</div>
<hr>
<div ng-view></div>
</body>
angular.module('demo001', ['ngRoute'])
.config([
'$routeProvider',
function ($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'home.html',
controller: 'HomeController'
})
.when('/post', {
templateUrl: 'post.html',
controller: 'PostController'
})
.when('/about', {
templateUrl: 'about.html',
controller: 'AboutController'
})
.otherwise('/home')
}
])
调用 $routeProvider.when
来配置不同路由的具体信息。 $routeProvider.when
方法接受2个参数,第一个是路由的url。第二个路由的具体配置,包括对应的模板地址,控制器名称等.$routeProvider.otherwise
可以用于设置默认路由地址。简单来说就是将未设置的url自动重定向到此url。
路由参数
angular.module('Module.Post', ['ngRoute']) .config([
'$routeProvider',
function ($routerProvider) {
$routerProvider
.when('/post', {
templateUrl: 'post.html',
controller: 'PostController'
})
.when('/post/:postId', {
templateUrl: 'post-id.html',
controller: 'PostIdController'
})
}
]) .controller('PostController', [
'$scope',
function ($scope) {
$scope.posts = [
{
name: 'post1',
id: 'post-001'
}, {
name: 'post2',
id: 'post-002'
}
]
}
]) .controller('PostIdController', [
'$scope',
'$routeParams',
function ($scope, $routeParams) {
$scope.msg = 'post id: ' + $routeParams.postId;
}
]);
路由中的 /:postId
其实是一个参数,它将匹配类似 /post/001
这种url,其中001 就是这个 :postId
的值。
我们在路由对应的控制器中,可以通过 $routeParams
参数来获取这个url参数。依次类推,我们可以为路由的url设置多个参数,比如 /post/:year/:month/:day/:postName
这样的路由,它将匹配 /post/2015/12/15/angular-router-demo 这样的路径。控制器中注入的 $routeParams
服务将会得到类似下面的对象,
{
"year": 2015,
"month": 12,
"day": 15,
"postName": "angular-router-demo"
}
http://www.tuicool.com/articles/jqMveaB
ngRoute的更多相关文章
- AngularJs ng-route路由详解
本篇基于ng-route来讲下路由的使用...其实主要是 $routeProvider 搭配 ng-view 实现. ng-view的实现原理,基本就是根据路由的切换,动态编译html模板. 更多内容 ...
- ngRoute插件
angular中可以使用插件,例如ngRoute插件就是用与路由控制. 首先要在模块中引入即可: var m1 = angular.module('myApp',['ngRoute']); 然后我们进 ...
- angularjs之插件ngRoute和ngAnimate
使用ngRoute和ngAnimate配合使用,可以实现页面切换的效果. 如果有使用过swiper,就知道这个效果是怎么样的. 代码: <!DOCTYPE html> <html l ...
- ngRoute AngularJs自带的路由
ngRoute $routeProvider 配置路由的时候使用. 方法: when(path,route); 在$route服务里添加一个新的路由. path:该路由的路径. route:路由映射信 ...
- AngularJS Best Practices: ngRoute
app/----- components/---------- users/--------------- controllers/-------------------- users.control ...
- angularjs中ng-route和ui-router简单用法的代码比较
1.使用ng-route: app.js中的写法: var app=angular.module('birthdayApp',['ngRoute']); app.config(function($ro ...
- angularjs ngRoute demo
<!doctype html> <html lang="en" ng-app="AMail"> <head> <met ...
- ngRoute 路由
做单页面应用多是通过不同的url来识别出不同的页面展现的. angularjs 为我们提供一个封装好的ngRoute工具 简单介绍用法 : <div ng-view></div> ...
- AngularJs练习Demo17 ngRoute
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- AngularJs练习Demo16 ngRoute
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- 【Ruby】与ruby相关的内容
本博文是为了记录Ruby相关的可学习资源,以便日常使用 在线学习Rails的网站版本 Ruby on Rails教程(Rails 5) Ruby的中文社区 Ruby China
- Django与HTML业务基本结合--基本的用户名密码提交方法1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HR招聘_(九)_招聘方法论(面试环节·薪资谈判和心理把控)
.薪资谈判 薪资谈判在整个过程中非常重要,如果这一环出现问题前期的所有付出都功亏一篑,无法达成招聘目标. 谈判过程中需要遵循以下原则: 明确 通过面试后需要再次确认候选人的目前薪资和期望,虽然第一次电 ...
- 存储过程详解 -SQLServer
来源:http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧 ...
- SVN failed: 405 Method Not Allowed
SVN update 时,错误:PROPFIND request on '/svn/xxxx' failed: 405 Method Not Allowed. 解决办法如下: 第一步:查看SVN服务器 ...
- Hdu 4923(单调栈)
题目链接 Room and Moor Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- visual studio code 调试reactjs
1.首先到visual studio code官网下载ide. 2.打开visual studio code,点击右侧菜单条的小图标 找到[Debugger for Chrome],并安装 3.打开c ...
- Primitive Topology
原文:Primitive Topology 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article/details/78 ...
- Permutations 全排列 回溯
Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the follow ...
- Spring 配置标签——util标签
Spring 配置标签——util标签 一.配置applicationContext.xml <beans xmlns="http://www.springframework. ...