1

각도 서비스에서 $ 간격을 사용하여 배열이 비어 있는지 확인하고 배열의 각 데이터에 대해 스크립트를 실행합니다. 이것은 아주 간단합니다. 내 문제는 $ 간격이 실행될 때마다 범위가 새로 고쳐지 며 몇 가지 지시문은 "다시 실행"된다는 것입니다. $ interval 대신 javascript setInterval 함수를 사용하면 예상 한 결과가됩니다. 하지만 카르마 테스트를 실행하는 동안 setInteval에 대한 호출 방법을 모르기 때문에 $ interval을 사용하고 싶습니다. $ interval을 사용하는 방법에 대한 아이디어가 필요하십니까?

답변

1

코드를 보지 않고서는 확실히 알기는 어렵지만, $interval을 호출 할 때는 4 번째 매개 변수 (invokeApply)를 false으로 설정할 수 있다고 생각합니다. 그걸 막으려면 $scope.$apply()으로 전화해야합니다. 여기서 나는 무슨 일이 일어나고 있는지 믿습니다.

자세한 내용은 $interval documentation을 참조하십시오.

+0

이미이 솔루션을 사용해 보았지만 작동하지 않습니다. 범위는 각 간격마다 계속 새로 고침됩니다. 죄송합니다. 코드를 게시 할 수 없습니다 .-- ( – clement

+0

실제 회사 소유 코드를 게시하지 않고 barebones 예에서 동작을 재현 할 수 있습니까?이 JSFiddle을 시작 템플릿으로 사용할 수 있습니다. http :// /jsfiddle.net/troygizzi/L0m1udsy/ –

+0

다음은이 문제를 재현 한 피들입니다. http://jsfiddle.net/L0m1udsy/12/ 로그에서 볼 수 있듯이 지시문은 간격으로 인해 매초마다 실행됩니다. 컨트롤러 (우리는 매초마다 로그에로드 된 URL을 보았습니다) – clement

관련 문제