2016-09-06 4 views
1

角度が$ HttpPostで2回実行されているときにいくつか問題があります。 あなたの情報のために、関数は "getActiveSpools()"関数から約束を返した後に実行されます。どういうわけか "http://testserver/LitzMobileListener/LitzScannerService.svc/PostMfgoSetup/"が2回実行され、データが2回アップロードされます。RESTで2回実行される角度HttpPost

私は角度とRESTで新しいです。

あなたの種類が役立ちますが、本当に私はそう私は答えに返信いたしますコメントの書き込みはできません

$scope.getActiveSpools().then(function (promise) { 

     $scope.spoolSetupHeader.STATUS = status; 
     $scope.spoolSetupHeader.OPTR_IN = $rootScope.globals.currentUser.employeeId; 
     $scope.spoolSetupHeader.PLANT_NO = $scope.spoolSetupHeader.setupMfgo.substring(1, 2); 
     $scope.spoolSetupHeader.MFGO_NO = $scope.spoolSetupHeader.setupMfgo.substring(2, 9); 

     $http({ 
      url: "http://testserver/LitzMobileListener/LitzScannerService.svc/PostMfgoSetup/" 
      , method: "POST" 
      , data: JSON.stringify($scope.spoolSetupHeader) 
      , dataType: "json" 
      , contentType: "application/json; charset=utf-8", 
     }).then(function (result) { 

      $scope.returnedStatus = new ReturnedOperationStatus(); 
      $scope.returnedStatus.IsSuccess = result.data.IsSuccess; 
      $scope.returnedStatus.Message = result.data.Message; 
      $scope.spoolSetupHeader = new OrderHeader();//new SpoolSetupHeader(); 
      $scope.spoolSetupHeader.PO_ID = result.data.RecordKey; 
      $scope.spoolSetupHeader.ReturnedInfo = result.data.ReturnedObject; 

      if ($scope.returnedStatus.IsSuccess == true) { 
       alertTitle = "Success"; 

       //upload source wire if needed 
       if ($scope.swNeeded == true) { 

        $scope.uploadMfgoSetupSpools('NEW', 'Active', true); 
       } 
       else { 
        $scope.uploadMfgoSetupSpools('UPDATE', 'Inactive', false); 
       } 

       //reload saved data 
       $scope.getSetupMfgo($scope.spoolSetupHeader.PO_ID, 'DETAILS_ACT', null, null); 

       //init new spool details list 
       //$scope.spoolSetupHeader.setupSpools = new Array(); 
       //myNavigator.pushPage('partial-setupSpool.html', { animation: 'slide' }) 

      } 
      else { 
       alertTitle = "Failed"; 
      } 

      ons.notification.alert({ 
       message: $scope.returnedStatus.Message, 
       title: alertTitle, 
       modifier: true 
      }); 
     }); 
    });//end promise 
+0

https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope#$これが正しい答えにあなたを導くことがあります。あなたの質問に十分に答えていないため申し訳ありません

ダイジェストから、私は$タイムアウトで呼び出しをラップしなければならなかった、とサーバー上のREST呼び出しで、checkiによって一度だけ更新されましたデータオブジェクトの 'DONE'カラムを更新する(または、/ INSERT/UPDATE/WHATEVERをログする方法を見つけて、最初の呼び出しですでに実行されている場合はアクションを実行しないでください)。 )。 非常に汚いクイックパッチですが、動作します...なぜそれが2回発生するのかを調査する時間が長くなります。 –

答えて

0

高く評価されています。私の理解から、あなたのhttp投稿要求は一度実行する必要があります。私は、(機能(約束)

コールが原因$ダイジェストで二回実行されます。)(見る機会を持っているが、おそらく

$ scope.getActiveSpoolsではありません。あなたが見ることができますそれあまりにも私

関連する問題