2016-12-15 9 views
0

Я звоню в заводскую службу, чтобы увеличить значение счетчика, а когда значение счетчика больше 5, я снова вызываю ту же заводскую службу внутри часов. Я использую часы, чтобы увидеть измененное значение счетчика.

Мой вопрос в том, когда счетчик становится больше 5, он вызывает услугу, но когда снова внутри часы он вызывает заводское обслуживание, он перестает звонить службе, как и мне, он должен идти в бесконечном цикле вправо? потому что, когда заводское обслуживание называется счетчиком, все еще больше 5.

Является ли секундомер проверкой стоимости модального, когда он изменен внутри часов?

Here является Fiddle код

JS

var app = angular.module('myApp', []); 

app.factory('testFactory', function(){ 
    return { 
     incrementCount:function(a){ 
         a++; 
         console.log('called service'+a) 
         return a; 
     } 
    }    
}); 


function HelloCtrl($scope, testFactory) 
{ 
    $scope.counter = testFactory.incrementCount(5); 
    $scope.$watch('counter', function (newValue, oldValue) { 
     if($scope.counter > 5){ 
      $scope.counter = testFactory.incrementCount($scope.counter); 
     } 
    }); 
} 

HTML код

<div ng-controller="HelloCtrl"> 
    <p>{{counter}}</p> 
</div> 
+0

его рабочий штраф только. первый счетчик времени 6. тогда смотреть будет снова запускать счетчик 6. значение такое же, что и часы остановлены –

+0

OK Я отредактировал свой вопрос сейчас, несмотря на передачу 5 непосредственно Я пропускаю $ scope, счетчик внутри часов, теперь это callinng exact 12 раз он останавливается. –

+0

такой же предмет Am проверка –

ответ

1

Поскольку ваше состояние $scope.counter > 5 // === false

Вы можете сделать это $scope.counter >= 5 или я предлагаю новый способ делать что

Check this link

+0

Я поражен, чтобы узнать, почему служба не вызывает бесконечно, когда условие истинно, почему часы перестают смотреть $ scope.counter? и он наблюдает до 12 раз. см. мой вопрос еще раз, пожалуйста, –

+0

, что нормально, потому что вы пропускаете номер счетчика по значению не по ссылке –

+0

Тогда почему он звонит только 12 раз? либо он не должен звонить, или должен звонить бесконечно. Проверьте мой обновленный код скрипта и консоль. –