2016-12-15 1 views
0

카운터 값을 증가시키는 팩토리 서비스를 호출하고 카운터 값이 5보다 크면 시계에서 동일한 공장 서비스를 다시 호출합니다. 변경된 카운터 값을보기 위해 시계를 사용하고 있습니다.

제 질문은 카운터가 커지면 5 서비스를 호출하지만 다시 시계가 공장 서비스를 호출 할 때 서비스를 호출하지 못하게합니다. 내게 당연히 무한 루프로 진행해야합니까? 공장 서비스가 호출 될 때 카운터가 여전히 5보다 크므로

시계가 시계 내부에서 수정 된 경우 시계가 모달 값을 확인하는 중입니까?

Here

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를 전달하는 방법에 대해 설명합니다. 시간은 멈춘다. –

+0

동일한 것 –

답변

1

때문에 당신의 상태가 $scope.counter > 5 // === false

당신은 그것을 $scope.counter >= 5를 만들 수 있습니다 또는 나는 새로운 방식을 제안 바이올린

JS 코드 해야 할 것 그

Check this link

+0

나는 왜 조건이 참일 때 서비스가 무한하게 호출되지 않는지 궁금하다. 왜 watch가 $ scope.counter를 보면서 멈추고 있는가? 그리고 그것은 단지 12 번까지 시계. 내 질문을 다시 한번 참조 –

+0

하시기 바랍니다. 참조 번호가 아닌 값으로 카운터 번호를 전달하기 때문에 정상입니다 –

+0

그런 다음 12 번만 호출하는 이유는 무엇입니까? 전화해서는 안되며 무한히 전화해야합니다. 업데이트 된 바이올린 n 코드와 콘솔을 확인하십시오. –

관련 문제