详解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,怎样注册旅游网站?