2016-03-29 36 views
0

controller.js dosya işlevi değişikliği denirdeğerini güncelle

function XYZController($rootScope,$scope){ 
    var vm = this; 
    vm.a = 0; 
    var change = function(data){ 
     data.forEach(function(e,i){ 
      vm.a+=Number(e.value); 
     }); 
    } 
    $log.log(vm.a); 
} 

olarak verilen, ancak $ log.log (a) yerine güncellenen sum.How arasında 0 yazdırır edilir vm.a'nın güncellenmiş değerini al. $ kapsamı yaptım. $ başvurduğumda, "$ digest zaten devam ediyor" hatası alıyorum.

+1

Nasıl "change" olarak adlandırılır? Lütfen tüm ilgili kodu gönderin. Ng-tıklatıcısını kullanıyorsanız, – GolfWolf

+0

numaralı telefondan başvuruda bulunmanız gerekmez. –

cevap

2

change() numaralı telefonu aramadan önce $log.log(vm.a); numaralı telefonu arıyorsunuz, bu nedenle kodunuzu değiştirdiyseniz, vm.a = 0; kodunuzu kaydeder.

function XYZController($rootScope,$scope){ 
    var vm = this; 
    vm.a = 0; 
    var change = function(data){ 
     data.forEach(function(e,i){ 
      vm.a+=Number(e.value); 
     }); 
     $log.log(vm.a); 
    } 
} 
+0

tam olarak, javascript senkronize. –

+0

Değer değiştirilecek ve ayrıca işlevin dışında da kullanılabilir. Bunu mümkün olamayacağını neden düşündün? –

+0

Teşekkürler, değişti. Güncellenmiş değeri, fonksiyonun dışında, gerçekten değişip değişmediğini kontrol etmeden yazdırmaya çalışırken harcadım. – hakunamatata

0

Değişiklik işleminiz tamamlanmadan önce $ günlüğünü arayamazsınız, yalnızca size 0 döndürür.