2016-04-12 13 views
2

ben şöyle diffData adında bir scope değişken oluşturun yayın olayı $ sonra:. Bence

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

, ben diffData 'ın num özelliğine bağlamak gibi pek: Ben $broadcast olay new synced data olsun

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

ben yerine güncelleştirilmiş num şöyle sahiptir yeni verilerle benim eski diffData:

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

Sorun, yeni num görünümde güncelleştirilmemesidir. Bunu nasıl düzeltebilirim?

+1

diğer çağrılarla çakışma yapmıyorsa, konsol.log çıktılarının yeni d olduğunu varsayalım amaçlandığı gibi, yani olay işe yarıyor mu? – Jorg

+0

Bu doğru –

+0

, var değiştikten sonra '$ scope. $ ApplyAsync()' aramayı denediniz mi? –

cevap

1

$scope.$apply'u denediniz mi? Kapsam değişkenini değiştirmek için $ kapsamını kullanın. değişiklikler Açısal uygulanan değilken ben kısa bir çözümü tercih olsa

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

Ben angular.js almak: 13424 Hata: [$ rootScope: inprog] $ devam ediyor zaten devam ediyor ' –

+0

Sadece şaka yapıyorum bu çalışır. Teşekkürler. –

+0

@DanielKobe, beni yakaladın: D –

0

Genellikle,

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

çağırabilirsiniz:

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

Bu sağlayan Açısal değişiklikleri uygulamak zaman can ve $apply()

İlgili konular