AngulerJS学习(四)resolve用法

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

简介

  1. 为什么使用resolve
    当路由切换的时候,被路由的页面中的元素(标签)就会立马显示出来,同时,数据会被准备好并呈现出来。但是注意,数据和元素并不是同步的,在没有任何设置的情况下,AngularJS默认先呈现出元素,而后再呈现出数据。这样就会导致页面会被渲染两遍,导致“页面UI抖动”的问题,对用户不太友好。resolve的出现解决了这个问题。

  2. resolve是干嘛用的
    resolve属性里的值会在路由成功前被预先设定好,然后注入到控制器中。通俗地将,就是等数据都“就位”后,才进行路由(其实我觉得也不能叫路由,因为路由是一些列的操作,其中就包括了设置resolve属性等等)。这样的好处就是页面仅会被渲染一遍。
    这样,我们就可以通过这种方式来动态加载相应的文件,减轻首页加载的负担。

  3. 简单用法:

var app = angular.module('myApp', ['ui.router']);
app.config(["$stateProvider", function($stateProvider) {
    $stateProvider
        .state("index", {
            url: '/',
            templateUrl: 'list.html',
            controller: 'myController',
            resolve: {
                user: function() {
                    return {
                        name: "perter",
                        email: "826415551@qq.com",
                        age: "18"
                    }
                }
            }
        })
}]);
app.controller('myController', function($scope, user) {
    $scope.name = user.name;
    $scope.age = user.age;
    $scope.email = user.email;
    $scope.user = user;
});

参考:http://blog.csdn.net/javaweiming/article/details/53944944

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值