所以看起来在示例中你可以这样做:
App.controller('ProjectListCtrl', ['$scope', 'Restangular', function($scope, Restangular) {
$scope.projects = Restangular.all('project/').getList();
}]);
但这对我不起作用。当我在项目中重复项目并查看范围时,我看到:
{
projects: {
then: null
catch: null
finally: null
call: null
get: null
restangularCollection: true
push: null
}
}
哪个看起来像未解决的承诺对象?
这种方法很好但更详细:
lgtApp.controller('ProjectListCtrl', ['$scope', 'Restangular', function($scope, Restangular) {
Restangular.all('project/').getList().then(function(projects){
$scope.projects = projects;
});
}]);
我错过了什么吗?这是在文档中:
$scope.owners = house.getList('owners')
无所谓,但是当我在Ripple chrome插件中测试一个phonegap应用时会发生这种情况。
答案 0 :(得分:12)
$scope.projects = Restangular.all('project/').getList().$object;
答案 1 :(得分:9)
作为对其他评论的补充,即使承诺解包被禁用,我在Restangular中实现了一种新的方式,让你轻松地为你打开包装(类似于$ resource做什么而不删除Promises)。查看https://github.com/mgonto/restangular#using-values-directly-in-templates了解更多信息:)
答案 2 :(得分:7)
从角度1.2开始,承诺的自动展开被禁用和弃用。所以,虽然
$scope.projects = Restangular.all('project/').getList();
允许您在以前的版本中直接访问视图中的projects
(可能已编写的Restangular文档),它将不再自动运行。您可以通过$parseProvider.unwrapPromises()
API重新启用该功能,但不推荐使用它,因此您最好的选择可能是手动解决控制器中的承诺,就像在更详细的示例中一样。
有关详细信息,请参阅签到commit message。