Angular ui路由器无法解析$resource结果
Angular ui-router cannot resolve $resource results
在我的一个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
在我的url /users
上工作不正常,有人能发现哪里可能有问题吗?感谢
将其更改为:
users: function ($resource) {
return $resource('http://localhost:8080/api/users').query().$promise;
}
因为通过这种方式,您将返回promise,并使用then(…),您将在中解析promise,只返回数据,因此它不会将数据传递给控制器,因为它在控制器加载后返回数据。
使用$q
服务将帮助您
var userVal = $resource('http://localhost:8080/api/users').query()
retrun $q.resolve(userVal.$promise).then(function(r){ return r;});
在你的控制器里,你可以去
vm.users = users
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- Angular ui路由器无法解析$resource结果
- 使用$resource并在多个控制器之间共享结果的最佳实践是什么?
- 在AngularJS中对$resource调用的结果进行排序
- 为什么我的控制器属性'未定义'当我给它分配$resource query()的结果时
- 在数据库中搜索并显示结果Express Node Angular MEAN.js $resource