0

のパフォーマンスを改善するためにBindonceを使用しました。バインドオンとng-repeat

しかし、私は1つの問題があります:ng-repeatから使用されるコレクションは少し後でデータで満たされます(APIからの要求データはしばらく時間がかかります)ので空です。更新はBindonceによって防止されます。

サーバーからの応答を待機してバインドする方法を指定できますか。


コード例:コントローラで

は私が持っている配列は$scope.requests = [];

それは私が約束について、赤きたし、このコードを助けることができると考え

$scope.requests = CurrentUserData.getRequests(); 

工場で初期化されます。

CurrentUserData.getRequests() 
      .then(function(response) { 
       $scope.requests = response; 
      }); 

は、しかし、私はエラーを受け取る

angular.js:11655 TypeError: CurrentUserData.getRequests(...).then is not a function

+0

可能な重複のを利用することができると述べた$scope.requests = response.data

に変更する必要がありますコードを使用する場合[各A​​ngularJSの非同期コールバック](http://stackoverflow.com/questions/16429832/callback-after-async-foreach-angularjs) –

+0

あなたは投稿できますか'getRequests'のためのurのコード? – batmaniac7

答えて

0

CurrentUserData.getRequests(...)は約束を返していません。

あなたは

CurrentUserData.getRequests() 
      .then(function(response) { 
       $scope.requests = response; 
      }); 

はその後、ライン$scope.requests = responseあなたは、元のコード

$scope.myData = CurrentUserData.getRequests(); 
$scope.$watch(myData, 
       function(newVal, oldVal){ 
        $scope.requests = newVal 
       }); 
0

最も考えられる原因:CurrectUserDataであなたの関数のGetRequestにはそれがあるべき、約束を返さないリターン$ http.get( '//URLは/ etc')

関連する問題