2016-04-12 9 views
2

放送後:私の見解では

$scope.diffData = $scope.diffSync.data; 

を、私はdiffDataのnum個のプロパティにバインド

:私は $broadcastイベント new synced dataを取得すると

<div class="sync-data"> num = {{diffData.num ? diffData.num : 0}}<div> 

私はそうのように更新されNUMを持つ新しいデータと私の古いdiffDataを置き換えますので、のような

$scope.$on('new synced data', function(event, data) { 
    console.log('new synced data event', data); 
    $scope.diffData = data; 
}); 

問題は、新しいnumがビューで更新されないということです。これをどうすれば解決できますか?

+1

私はconsole.logが新しいdを出力すると仮定していますイベントは正常に動作しますか? – Jorg

+0

これは正しいです –

+0

varが変更された後 '$ scope。$ applyAsync()'を呼び出そうとしましたか? –

答えて

1

$scope.$applyを試しましたか? $ scope。$ applyを使用してスコープ変数を変更します。変更が角度で適用されていないとき、私は短いソリューションを好むものの

$scope.$on('new synced data', function(event, data) { 
    console.log('new synced data event', data); 
    $scope.$apply(function(){ 
     $scope.diffData = data; 
    }); 
}); 
+0

私は 'angular.js:13424エラーを受け取りました:[$ rootScope:inprog] $ apply already in progress' –

+0

これは冗談です。ありがとう。 –

+0

@DanielKobe、あなたは私を持っています:D –

0

一般的に、あなたは

$scope.$apply(function() { 
    // change vars here 
}) 

を呼び出すことができます。

// change vars 
$scope.foo = 'bar'; 
$scope.$applyAsync(); 

このことができます角度変更を適用する際にそれができるとそれは他の呼び出しと矛盾しません$apply()

関連する問題

 関連する問題