2016-04-22 11 views
0

私はreadingServiceという工場のファクトリメソッドを持っていますGetLastSyncTimestampGetLastSyncTimestamp私は返すDateTimeをWebサービスから返します。戻り値DateTimeは$scope.lastSyncTimestamp変数に割り当てられていますが、日時が正しく約束の外のangularjsの工場データへのアクセス

readingService.GetLastSyncTimestamp($scope.id).then(function(d) { 
      $scope.lastSyncTimestamp = d.data; 
      console.log($scope.lastSyncTimestamp); 
     }); 

が、約束の外に、私は、任意のデータ

readingService.GetLastSyncTimestamp($scope.id).then(function(d) { 
      $scope.lastSyncTimestamp = d.data; 
     }); 

console.log($scope.lastSyncTimestamp); 

を得ることはありません約束外のデータを取得する方法はありますか?

+0

サービスを必ず使用してください。ただし、この問題は約束の非同期呼び出しに関連しています。値を印刷しようとすると、実際には設定されていません – thegio

+0

はい問題は非同期呼び出しですが、それを外部に取得する方法が必要です – Mostafiz

+0

以下のサービスを使用してください。 – thegio

答えて

1

サービス

.service('DataService', function() { 
      var service = {}; 
      service.defaultvalue= "1"; 
      return service; 
     }) 

を作成し、コントローラにそれを注入します。 は、その後、あなたは次のように約束して、それを使用することができます。

dataservice.lastSyncTimestamp = d.data; 

とも外側に働くことになります。

例:この例では https://github.com/leader80/angularjs-dataservice/blob/master/js/dataService.js

0

console.log($scope.lastSyncTimestap);行が実行される前に

readingService.GetLastSyncTimestamp($scope.id).then(function(d) { 
    $scope.lastSyncTimestamp = d.data; 
}); 

console.log($scope.lastSyncTimestamp); 

約束が戻っていません。約束の範囲内でデータを処理したり、関数内のデータで処理したい機能をカプセル化したり、その関数を約束内から呼び出すことができます。

関連する問題