0

때때로 페이지를로드하는 동안 translateChangeSuccess이 실행되지 않고 던지는 오류가 발생합니다. 그래서 $ translate가 준비 될 때마다 $translateChangeSuccess으로 전화해야합니다. 어떻게 적절한 방법으로 그것을 할 수 있습니까?

이것은 작동하지 않습니다. '$ translateReady'기능을 입력하지 않았습니다.

$rootScope.$on('$translateReady', function() { 
     console.log("It enterd Translate ready"+$translate.isReady()); 
     $rootScope.$on('$translateChangeSuccess', myfunction());   
       }); 

하지만 난이 기능 나는 그것이 준비 때마다 $translateChangeSuccess를 호출 할 필요가

$translate.onReady().then(function() { 
console.log("It enterd Translate ready"+$translate.isReady()); 
     $rootScope.$on('$translateChangeSuccess', myfunction());   
       }); 

내부 진입이 연료 소모량을 사용하는 경우. 어떻게해야합니까? 아무도 모른다면 도와주세요. 고마워요!

답변

1

루트 범위에서 브로드 캐스트하고 원하는 범위에서들을 수 있습니다. 또한 이전 이벤트 핸들러에서 호출 할 필요가 없습니다. 실제로는 $translateReady 이벤트가 발생하면 이벤트 리스너 (예 : $translateChangeSuccess)를 추가하는 것입니다.

$translate.onReady().then(function() { 
    console.log("It enterd Translate ready"+$translate.isReady()); 
    $rootScope.$broadcast('$translateChangeSuccess');  
}); 

$rootScope.$on('$translateChangeSuccess', myfunction); 

function myfunction(){ 
    console.log("myfunction called"); 
} 
:

어쨌든,이 방법을 사용하는 것을 고려