最近感觉有很多学angular 的童鞋在路由问题中还不清楚怎么使用。其实我之前也是一直晕晕的不懂怎么用,现在要好得多了。在这里就记录下ui-router使用。

就已目前做的这个项目来介绍下怎么使用吧。Note:最好是按照层次规则来设置路由名,好处是容易看懂,也便于管理。
我这里是以总state到模块state再到下一层模块state(再到下一层模块state)最后到详细页面的state来分层。
首先我们先定义一个总的state如:
.state('home', {
url: '/home?backKey',
// abstract: true,
templateUrl:'home/home.html',
controller:'homeCtrl'
})
在homeCtrl中可以为空,看需求吧。因为这个是最顶层的state所以在angular.module中一定要把下一层的路由angular.module依赖进来。如果有多个模块那就分别依赖进来,用逗号隔开,这里就依赖一个模块来说明下。如var m = angular.module("ms.homeRouter", ['ms.hrRouter']);
而在home.html中必须要存在一个<ui-view/> 作为祖模板。好了到这里就已经把最顶层的工作内容完成了,现在开始各个模块路由分配。
上面已经说到一个ms.hrRouter的模块依赖进来,现在就已这个为例来说明下配置:在这个模块中新建个js文件,定义一个angular.module,名字就是ms.hrRouter。
var m = angular.module("ms.hrRouter", [
'ms.hrDismissionRouter']);
这个就是hr的模块,在这模块中又有该模块的子模块。angular.module名依赖进来,在这模块的路由中先配置下总路由,然后再在该路由下分下一层模块(或者子页面)路由。
.state('home.hr', {
url: '/hr',
template: '<ui-view />',
controller: 'hrCtrl'
})
.state('home.hr.dismission', {
url: '/dismission',
template: '<ui-view />',
controller: 'hrNextCtrl'
})
});
说明下上面的代码:state名为home.hr说明这个是在hr模块中的顶层路由。其template为'<ui-view />' 意思是抽象的,如果路由定位这里其显示内容其实是在home层页面中的ui-view中,这里的hrCtrl内容也可以为空,看需求,但必须要定义出这个控制器否则会报错(上面home的也是一样)。接着来解释下下面state名为home.hr.dismission路由:从名字就可以看出来这个路由就是hr模块的下一层模块,名为dismission。而url对象也是这模块的名字,以便在浏览器地址中可以直接看出是在哪模块哪层哪里。template、controller两个属性跟上面解释是一样的。
到现在已经完成了顶层路由home到hr模块路由再到dismission模块路由说明。
now到dismission模块中的详情页面的路由配置:在dismission模块中也新建一个路由js文件。这个模块的angular.module配置为var m = angular.module("ms.hrDismissionRouter", []);
因为这个是最底层的路由了已经再也没有子路由依赖了,所以后面的[]中是空的。在这页面中的state配置如:
.state('home.hr.dismission.commonApproval', {
url: '/commonApproval?taskId&openid&doType',
templateUrl: 'hr/dismissionAppl/dismissionAppl.html',
resolve: {
dismRsl: getResolve()
},
controller: 'dismissionApplCtrl'
})
]);
从state名字也可以看出,这个是在dismission模块的子层。url也是这个页面的路由名,以及这个页面需要带的参数。这里的resolve的作用是在页面加载前先执行getResolve()方法。该方法的目的是获取数据,达到进该页面前先获取到该页面的数据,等到该页面的所有数据都获取完后再跳转到该页面。这个resolve属性不懂的可以百度,或者我博客中也有篇介绍的,可以看看。
好了!可能说得不是太明白但总体思路就是这样。
Note: 最好是在每层模块中都新建两个js文件,一个是router.js一个是controller.js这样好管理。 这是模块分层对应的文件分层。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angular
# 分层
# angularjs
# ui
# router分层
# AngularJS路由Ui-router模块用法示例
# 详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
# 详解angularJs模块ui-router之状态嵌套和视图嵌套
# 详解AngularJs ui-router 路由的简单介绍
# angularjs ui-router中路由的二级嵌套
# AngularJS ui-router (嵌套路由)实例
# 浅析angularJS中的ui-router和ng-grid模块
# Angularjs中UI Router的使用方法
# Angularjs中UI Router全攻略
# AngularJS 使用 UI Router 实现表单向导
# 深究AngularJS之ui-router详解
# 是在
# 在这
# 下一层
# 再到
# 好了
# 到该
# 不懂
# 前先
# 这是
# 完成了
# 在这里
# 也有
# 在这个
# 那就
# 多个
# 必须要
# 有很多
# 还不
# 又有
# 而在
相关文章:
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何在IIS中配置站点IP、端口及主机头?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何设置并定期更换建站之星安全管理员密码?
定制建站流程步骤详解:一站式方案设计与开发指南
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
再谈Python中的字符串与字符编码(推荐)
高防服务器租用首荐平台,企业级优惠套餐快速部署
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
建站之星后台密码遗忘?如何快速找回?
建站之星后台密码遗忘或太弱?如何重置与强化?
建站主机选购指南:核心配置与性价比推荐解析
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何快速生成专业多端适配建站电话?
广州建站公司哪家好?十大优质服务商推荐
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何选择最佳自助建站系统?快速指南解析优劣
如何在IIS7中新建站点?详细步骤解析
广州营销型建站服务商推荐:技术优势与SEO优化解析
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何在橙子建站中快速调整背景颜色?
已有域名如何免费搭建网站?
如何在阿里云高效完成企业建站全流程?
微信小程序 input输入框控件详解及实例(多种示例)
平台云上自主建站:模板化设计与智能工具打造高效网站
Bpmn 2.0的XML文件怎么画流程图
高防服务器租用如何选择配置与防御等级?
小型网站制作HTML,*游戏网站怎么搭建?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何自定义建站之星模板颜色并下载新样式?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何通过虚拟主机快速搭建个人网站?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何通过IIS搭建网站并配置访问权限?
如何破解联通资金短缺导致的基站建设难题?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
MySQL查询结果复制到新表的方法(更新、插入)
网站制作话术技巧,网站推广做的好怎么话术?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
宝塔面板如何快速创建新站点?
临沂网站制作公司有哪些,临沂第四中学官网?
SQL查询语句优化的实用方法总结
如何基于云服务器快速搭建个人网站?
音响网站制作视频教程,隆霸音响官方网站?
如何在Ubuntu系统下快速搭建WordPress个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。