2016-08-13 13 views
0

これはサーバーからデータを取得するためのコードです。スコープ変数の変更後にビューが更新されないangle js

sampleApp.controller('OfferController', function ($scope, $state) { 

    var offersRef = firebase.database().ref('offers'); 
    $scope.offers = []; 

    offersRef.on('value', function(snapshot) { 
     $scope.offers = snapshot.val(); 
     //$state.go($state.current, {}, {reload: true}); 

    }); 
}); 

最初に$ scope.offers = [];空です。それはここでいっぱいになっています。 $ scope.offers = snapshot.val();

ビューは更新されていません。同じページに何かボタンや何かをクリックしたり、同じページに戻って来たりする。その更新されている。

データが利用可能になるとすぐに更新されないのはなぜですか?直し方?

答えて

3

値を設定した後にバインディングを更新するように値を設定した後、$scope.$apply();を呼び出してください。

$scope.offers = snapshot.val(); 
$scope.$apply(); 
+0

お返事ありがとうございました。そのうまく動作します。しかし、$ scopeが利用できない場合はどうすればよいですか?たとえば、サービスでも、私はこのようなデータを取得しています。 $ scopeの使い方$ apply();そこ?? –

+0

@DeveshAgrawalビューにバインドする場合は、$ scope vaiableを使用する必要があります。サービスでは、現地の伝票を使用して – Sajeetharan

+0

Not Actuallyに割り当てる必要があります。サービスで私はこのように割り当てています。 ProductService.Products = snapshot.val();コントローラでは、同じ参照変数を使用しています。このように:this.ProductService = ProductService; –

関連する問題