详解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


相关推荐: 如何注册花生壳免费域名并搭建个人网站?  如何用虚拟主机快速搭建网站?详细步骤解析  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在阿里云通过域名搭建网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel如何自定义分页视图?(Pagination示例)  JavaScript如何实现路由_前端路由原理是什么  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  免费网站制作appp,免费制作app哪个平台好?  如何利用DOS批处理实现定时关机操作详解  Laravel Session怎么存储_Laravel Session驱动配置详解  高端智能建站公司优选:品牌定制与SEO优化一站式服务  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  利用JavaScript实现拖拽改变元素大小  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Laravel如何实现用户注册和登录?(Auth脚手架指南)  昵图网官方站入口 昵图网素材图库官网入口  如何在万网ECS上快速搭建专属网站?  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  在线制作视频的网站有哪些,电脑如何制作视频短片?  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Linux系统命令中screen命令详解  零服务器AI建站解决方案:快速部署与云端平台低成本实践  重庆市网站制作公司,重庆招聘网站哪个好?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  浅谈redis在项目中的应用  jQuery 常见小例汇总  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何彻底卸载建站之星软件?  javascript中闭包概念与用法深入理解  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  深圳网站制作的公司有哪些,dido官方网站?  如何快速生成可下载的建站源码工具?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel如何构建RESTful API_Laravel标准化API接口开发指南