正在以角度调用另一个服务的服务

时间:2014-11-05 14:10:28

标签: angularjs

我需要保存数据然后我需要立即显示更改。 这就是为什么我有一个

  • updateSaisine,它允许我更新数据
  • getOneSaisine,它允许我获取数据并显示它们:

哪种方法更正确,原因是什么?

我应该写:

$scope.saveSaisine = function() {
   saisineSrv.updateSaisine($scope.currentSaisine.idSaisine, $scope.currentSaisine).
   then(
       function() {
           $scope.errorMessages = [];

              if ($scope.currentSaisine.idMotif) {
                 toaster.pop('success', 'Réponse', 'Success');
                 angular.element('#modalSaisine').modal('hide');

                 saisineSrv.getOneSaisine($scope.currentSaisine.idSaisine, $scope.currentSaisine).then(function(response) {
                     $scope.currentSaisine.dateModif = response.dateModif;
                 });

         },
         function error(response) {
             $scope.errorMessages = response.data;
             toaster.pop('error', 'Réponse', 'We have a problem');
         }
    );
};

OR

$scope.saveSaisine = function() {
   saisineSrv.updateSaisine($scope.currentSaisine.idSaisine, $scope.currentSaisine).
   then(
       function() {
           $scope.errorMessages = [];

              if ($scope.currentSaisine.idMotif) {
                 toaster.pop('success', 'Réponse', 'Success');
                 angular.element('#modalSaisine').modal('hide');

         },
         function error(response) {
             $scope.errorMessages = response.data;
             toaster.pop('error', 'Réponse', 'We have a problem');
         }
    );

   saisineSrv.getOneSaisine($scope.currentSaisine.idSaisine, $scope.currentSaisine).then(function(response) {
       $scope.currentSaisine.dateModif = response.dateModif;
   });
};

1 个答案:

答案 0 :(得分:1)

第一个选项是如何刷新数据的正确方法,因为这些服务是异步的,因此在第二个示例中,您可能无法获取新数据(getOneSaisine可以在updateSaisine之前完成)。