AngularJS 路由

ng-route模块中的when()和ui-route的state()都提供了resolve属性。 

先说路由的部分属性:

(1)url:就是访问的路径,“/”是最先访问的地址,往后依次类推

           url: '/index_edit/:pageId/:isDefault',携带要传递的参数

(2)templateUrl:这个state对应的html页面和文件的存放路径,controller必须对应templateUrl

           templateUrl: 'tpl/bench/index_edit.html',

(3)template:就是不具有单独的html页面,只有一段模板template,没有templateUrl自然就没有controller

template:'<div ui-view class="fade-in-right-big smooth"></div>'

例如:

.state('login', {

                           url: '/login',

                           template:'<div ui-view class="fade-in-right-big smooth"></div>'

                       })

.state('login.index', {

                            url: '/index',

                            cache: false,

                            templateUrl: 'tpl/login/login.html',

                            controller: 'login'

                        })

真正的作用就是:login没有真正的页面只有一个template模板,login.index是login的子路由,当路由访问到login.index的时候,对应的页面login.html中的内容会添加到div[ui-view]的div中去,实际效果就变成<div ui-view class="fade-in-right-big smooth" >login.html</div>

(4)resolve     ,resolve属性里的值会在路由成功前被预先设定好,然后注入到控制器中。通俗地将,就是等数据都“就位”后,才进行路由(其实我觉得也不能叫路由,因为路由是一些列的操作,其中就包括了设置resolve属性等等)。这样的好处就是页面仅会被渲染一遍。

resolve在state配置参数中,是一个对象(key-value),每一个value都是一个可以依赖注入的函数,并且返回的是一个promise(当然也可以是值,resloved defer)。

resolve第一种用法:


另外可参考文章:http://www.cnblogs.com/lovesueee/p/4442509.html


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,422评论 25 708
  • 闭上双眼, 黑漆漆的一片。 睁开双眼, 原本漆黑的天空露出了零星的光亮, 仔细一看,原来是乌云挡住了星星的光。 侥...
    夏目萤火阅读 127评论 0 0
  • 最近接触个客户,下巴出奇的尖,跟动画片葫芦娃里的蛇精一样的脸型,一看就是通过整形而来。整形在现在是非常的流行,加上...
    扶正健康产业集团阅读 435评论 0 0
  • 星耀小学二年三班2017年12月30日 儿子晚上写完作业,我陪他阅读课外书,儿子很开心,一边看一边给我讲故事的内容...
    任鹏旭妈妈阅读 348评论 0 0