详解angularjs 关于ui-router分层使用
最近感觉有很多学angular 的童鞋在路由问题中还不清楚怎么使用。其实我之前也是一直晕晕的不懂怎么用,现在要好得多了。在这里就记录下ui-router使用。
就已目前做的这个项目来介绍下怎么使用吧。Note:最好是按照层次规则来设置路由名,好处是容易看懂,也便于管理。
我这里是以总state到模块state再到下一层模块state(再到下一层模块state)最后到详细页面的state来分层。
首先我们先定义一个总的state如:
.state('home', { url: '/home"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"//img.jbzj.com/file_images/article/201706/2017061214155820.png" alt="" /> 这是模块分层对应的文件分层。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇:Vue 2中ref属性的使用方法及注意事项
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。