详解angularjs 关于ui-router分层使用
发布时间 - 2026-01-11 01:50:38 点击率:次最近感觉有很多学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详解
# 是在
# 在这
# 下一层
# 再到
# 好了
# 到该
# 不懂
# 前先
# 这是
# 完成了
# 在这里
# 也有
# 在这个
# 那就
# 多个
# 必须要
# 有很多
# 还不
# 又有
# 而在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
怎么用AI帮你为初创公司进行市场定位分析?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
如何在云虚拟主机上快速搭建个人网站?
html如何与html链接_实现多个HTML页面互相链接【互相】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Android仿QQ列表左滑删除操作
网站制作报价单模板图片,小松挖机官方网站报价?
Java遍历集合的三种方式
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
javascript中的try catch异常捕获机制用法分析
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
音乐网站服务器如何优化API响应速度?
原生JS实现图片轮播切换效果
简单实现Android验证码
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何在IIS管理器中快速创建并配置网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在搬瓦工VPS快速搭建网站?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
网站制作软件有哪些,制图软件有哪些?
如何彻底卸载建站之星软件?
实例解析angularjs的filter过滤器
Laravel如何使用Livewire构建动态组件?(入门代码)
如何有效防御Web建站篡改攻击?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
在centOS 7安装mysql 5.7的详细教程
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Python3.6正式版新特性预览
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
BootStrap整体框架之基础布局组件
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
微信小程序制作网站有哪些,微信小程序需要做网站吗?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
网站制作免费,什么网站能看正片电影?
HTML 中动态设置元素 name 属性的正确语法详解
专业商城网站制作公司有哪些,pi商城官网是哪个?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何在服务器上三步完成建站并提升流量?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
如何在 React 中条件性地遍历数组并渲染元素
制作旅游网站html,怎样注册旅游网站?

