我在使用角度控制器中使用Restangular检索的REST数据的能力方面存在轻微问题。我有以下代码适用于帐户列表:
var baseAccounts = Restangular.all('accounts');
baseAccounts.getList().then(function(accounts) {
$scope.accounts = accounts;
});
这适用于列表。我对单个帐户使用类似的语法:
var baseAccount = Restangular.one('accounts');
baseAccount.getList(GUID).then(function(returnedAccount) {
$scope.currentAccount = returnedAccount;
});
我使用ng-repeat作为我第一次请求的处理指令。我正在尝试使用{{account.name}}标记绑定单个请求,但它似乎没有显示任何数据,尽管请求正确。 GUID是我必须传入以检索相关记录的参数。
我已经梳理了Restangular文档,在我看来,我正在正确地撰写我的请求。任何见解将不胜感激。
编辑:我已经尝试过此处列出的所有解决方案都无济于事。似乎Restangular正在提交正确结构化的请求,但当它通过我的控制器返回它时,它只显示为一个帐户列表的请求。记录响应时,它显示的响应与帐户列表的响应相同。我不相信这是一个范围问题,因为我已经以一种应该起到缓解作用的方式封装了我的请求。因此,请求 - >之间似乎存在脱节。填充请求的Restangular对象/承诺 - >数据绑定到请求。 Restangular在返回帐户数组或未定义之间交替显示。
答案 0 :(得分:1)
one()函数有第二个参数接受一个id,例如: .one('用户',1)。你可以使用它。
<强> CODE 强>
var baseAccount = Restangular.one('accounts', 1); //1 would be account id
baseAccount.getList('account').then(function(returnedAccount) {
$scope.currentAccount = returnedAccount;
});
或强>
var baseAccount = Restangular.one('accounts', 1); //1 would be account id
baseAccount.all('account').getList().then(function(returnedAccount) {
$scope.currentAccount = returnedAccount;
});
有关详细信息,请查看github issue
希望这可以帮助你,谢谢。
答案 1 :(得分:1)
https://github.com/mgonto/restangular#using-values-directly-in-templates
自Angular 1.2以来,默认情况下已禁用模板中的Promise展开,并且很快就会弃用。
尝试:
$scope.accounts = baseAccounts.getList().$object;
答案 2 :(得分:0)
尝试:
var baseAccount = Restangular.one('accounts', GUID);
baseAccount.get().then(function(returnedAccount) {
$scope.currentAccount = returnedAccount;
});
这里的问题是它期望返回一个数组。我假设你期待一个帐户对象。因此我们需要使用get函数,getList()
的intead