在我的一个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
上无法正常工作,是否有人可能会发现问题所在?感谢
答案 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