Restangular中单个请求的问题

时间:2015-02-24 18:26:39

标签: angularjs restangular

我在使用角度控制器中使用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在返回帐户数组或未定义之间交替显示。

3 个答案:

答案 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