一、背景
今年3月份从一个同事那里接手了一个angular项目,心里有血窃喜,自己花了两个星期自学的angular终于可以用上战场啦!不久,那个同事离职啦,整个项目落在了我的手里,就在项目快要上线时,领导说,要加一点新的功能。想着又要加班啦,我心里一万只草泥马飞腾而过。可是不管怎样,新的需求还是下来啦。
好吧,我认命。本来很简单的一件事,配置路由,书写模板。可是前辈留下的路由,看得我眼花缭乱。本来就是三板斧的斤两,让我情何以堪。
二、ui-router的简单配置
查阅了各种资料,总结了一些ui-router的用法:
1、
urlRouterProvider
urlRouterProvider负责监听'
location′,当′
location’改变时,它将会在给定的一系列规则中去一个一个的匹配,直到匹配成功,然后执行。
urlRouterProvider常常被用在配置state时指定的url。
urlRouterProvider提供:
.rule(rule):指定
urlRouterProvider的匹配规则;参数rule是一个以′
injector'和'
location′服务为参数的函数,该函数返回一个有效的路径或String对象;.otherwise(rule):定义了一个当请求了一个无效路由时的替代路径。参数rule是一个你要映射的url路径或者返回该路径的函数。.when(what,hander):为给定要匹配的url注册一个handler。参数handler:如果handler是string,则把它当做一个映射,并被注入根据匹配规则;如果handle是一个可注入函数,它将被调用如果′
location'匹配的话。你可以在函数中使用'
match′;参数what:要映射的url..deferIntercept(defer):是否监听′
location'的变化。该方法一般配合'
urlRouter′模块来使用。defer:boolean2.
urlRouter
urlRouter.sync():触发更新,当地址栏发生变化或′
locationChangeSuccess’事件触发时触发更新。
urlRouter.listen():监听3.
stateProvider
$stateProvider