Angular ui-router无法解析$ resource结果

时间:2015-02-16 02:38:52

标签: javascript angularjs angular-ui-router resolve

在我的一个UI路由器状态中,我有以下链接'/users',它指向显示用户列表的页面。下面是我为使用$ resource调用解析用户列表而编写的代码,但是,在加载页面时,数据似乎无法解析:

.state('users', {
                    url: '/users',
                    templateUrl: '/assets/angularApp/partials/users.html',
                    controller: 'UserListCtrl as vm',
                    resolve: {

                        users: function ($resource) {

                            return $resource('http://localhost:8080/api/users').query().$promise.then(function(data) {
                                return data;
                            });
                        }
                    }


                })

UserListCtrl 中,我有以下内容将已解析的用户分配给vm.users,以便用户可以显示在部分页面上:

function UserListCtrl($log, users) {
        var vm = this;
        vm.users = users;
}

然而,该页面只会显示一些没有填充任何数据的空行。所以我认为resolve在我的网址/users上无法正常工作,是否有人可能会发现问题所在?感谢

2 个答案:

答案 0 :(得分:5)

将其更改为:

case class Conference (
    id         : Long,
    // ...
    var forGroup   : Option[LabGroup]=None
)

因为你通过这种方式返回承诺,然后使用then(...),你就可以解决承诺并且只是返回数据,因此它不会将其传递给控制器因为它在控制器加载后返回它们。

答案 1 :(得分:0)

使用$q服务可以帮助您

var userVal = $resource('http://localhost:8080/api/users').query()
retrun $q.resolve(userVal.$promise).then(function(r){ return r;});

在你的控制器内,你很高兴

vm.users = users