Restangular - 如何在其上创建API

时间:2014-03-31 11:10:04

标签: angularjs restangular

我已经开始将Restangular用于我的AngularJS项目,并希望使用Restangular创建一个服务来进行REST调用。该服务将具有以下功能:

getAll
$scope.account = save($scope.account)
$scope.account = update(account)

现在,由于Restangular调用返回服务中的一个promise,它必须像then()一样调用才能获得结果,如何从服务包装器返回获取或更新的结果?

我想创建一个包装器API,以便在获取记录之后我可以拥有任何其他业务逻辑,然后从我的服务API返回结果。我可以直接在我的控制器中使用Restangular服务,但是我需要从控制器调用一个适当的服务层,它将返回REST调用的结果,而不仅仅是一个承诺。

1 个答案:

答案 0 :(得分:1)

您需要使用承诺链。

所以在你的服务中你会有(注意我们正在回复承诺):

this.save = function(newAccount) {
  ..... // Do business logic on account before submit
  return restangular.all('accounts').post(newAccount).then(function(result){
    ...... // Do business logic after successful save
    return newAccount;
  }, function(error){
    ...... // Do business logic on error
  });
};

然后在你的控制器内:

$scope.saveAccount = function(newAccount) {
  service.save(newAccount).then(function(savedAccount){
    $scope.account = savedAccount;
  }, function(errror) {
   ..... // Error handling
  });
};