Open silence717 opened 8 years ago
$stateProvider
.state('home', {
url: '/home',
templateUrl: './partials/home.html',
controller: 'HomeController',
controllerAs: 'vm',
resolve: {
restaurants: function($http) { // 注意这里可以注入服务
return $http.get('data/restaurant.json').then(function(response) {
return response.data;
}, function() {
return '服务器出错了, 请联系管理员';
});
}
}
});
angular-ui-router使用
github源码地址:https://github.com/angular-ui/ui-router
api地址 http://angular-ui.github.io/ui-router/site
安装
使用angular-ui-router
备注: 以下所有示例代码来源于个人所写的练习.
地址为:https://github.com/silence717/angular-webpack-demo
导入angular-ui-router
在angular.module中注入angular-ui-router
为了方便使用,将$state与$stateParams全部挂载到$rootScope,在angular.module中初始化
定义路由规则,在angular.module中配置路由规则
基于以上两部分的操作,完整的app初始化代码为
业务模块路由定义配置,我们通常建议将路由分散到自己的模块管理,所以只以单个作为示例
业务入口主文件导入,并且在angular.module中配置
页面的html如何书写
在这里做一个简单常用的API的解释
directive
ui-sref:A directive that binds a link ( tag) to a state.
ui-sref-active: A directive working alongside ui-sref to add classes to an element when the related ui-sref directive's state is active, and removing them when it is inactive.
ui-view: The ui-view directive tells $state where to place your templates.
ui-view使用有三种,分别为:
具体里面的参数不做介绍,自己查阅官方文档
上面的html代码会被compile为:
$state使用
Methods
get 获取当前state的配置信息
go 跳转到一个新的state
href 获取到当前state的href值
includes 获取当前state是否包含某些state
is Similar to $state.includes, but only checks for the full state name
events
$stateChangeStart 路由发生改变
$stateChangeError 路由转变出错,参数基本与$stateChangeStart一致,多一个error参数
$stateChangeSuccess 路由转向成功,参数与$stateChangeStart完全一致
$stateNotFound 未找到路由,demo copy于参照官网
onEnter 可以配置进入路由to do something
onExit 退出路由做什么
部分知识点单列:
一、问: 多个页面可能使用相同的html模板,我们是要同样的代码写N遍吗? 答案肯定不是.那么问题来了,一个页面有多个模板文件,肿么办?
个人理解就是: viewname@statename去设置template
二、 $stateParams使用,^^最后一个点
先看代码:
问: 我们经常会需要用到路由去传参,例如编辑一条信息,获取单个信息,应该如何去做呢?
答: angular-ui-router提供了一个$stateParams的service,可直接获取.在controller中的使用示例
有人肯定会疑问,$stateParams从何而来,在上面我们给angular.module中已经将其初始化,挂在到$rootScope.
三、这次真的是最后一个点了 most important: $urlRouterProvider
it's over! 所有以上仅代表个人理解,如有不对,请指出,虚心接受改正错误!