2017-05-02 9 views
0

Angular 응용 프로그램에 RightSidebarLayout Page가 있으며, 간격을 setInterval으로 설정하고 해당 함수를 호출하여 팩토리 기능에서 알림을받습니다.

문제는 사용자가 로그 아웃 한 후 지우는 것입니다. 여기

내가 시도하는 첫번째 일은 내가 일반 자바 스크립트를 사용하여 setInterval 방법을 사용한다는 것입니다 내 코드 RightSidebarLayout.Controller.js

,하지만 난 내가 아니에요 왜 여기 내 질문은 ToastInterval not defined

var vm = this; 
function init(){ 
    var ToastInterval = setInterval(getAllNotifications, 9000); // when user has logged out stop my interval 
     } 
init(); 

function getAllNotifications() { 
    // alert(commonApi.IsUserLoggedIn()) // alerts true if logged in else false //working properly 
    if (!IsUserLoggedIn()){ 
     clearInterval(ToastInterval); // This shows error ToastInterval is undefined as i have defined it in parent environment 
      return; 
    } 
    else { 
     notificationService.getNoti() // Call a service and get all notification 
    } 
    } 

의 오류가 발생했습니다 ToastIntervallexical environment ,,,

2)로 선언되어 있습니다. 따라서 $Interval에 의해 정의 된 내 ControllerAs을 사용했습니다. ca llback, 그것은 나에게 오류를 준하지 않는, 여전히 작동하지 않는, 그것은 여전히 ​​

.. 여기

var vm = this; 
function init(){ 
    vm.ToastInterval = $interval(getAllNotifications, 9000); // when user has logged out stop my interval 
} 
init(); 

function getAllNotifications() { 
    // alert(commonApi.IsUserLoggedIn()) // alerts true if logged in else false //working properly 
    if (!IsUserLoggedIn()){ 
     $interval.cancel(vm.ToastInterval); 
     return; 
    } 
    else { 
     notificationService.getNoti() // Call a service and get all notification 
     } 
    } 

기능

이 간격이 내 간격이 지워지지 않습니다 경고를받을 경우에도 지워지지 않습니다 화재 무엇 내가 잘못하고있어?

도와주세요,

+0

내 어휘 환경이기도하다. 두 번째 이유는 작동하지 않는다. –

+1

'init' 함수 내에서 정의 된대로 'ToastInterval not defined' 오류가 발생합니다. 'ToastInterval' 변수를 선언하면 변수'vm'이 선언되고 코드가 작동합니다. –

+0

예 제 두 번째 코드는 내 VM이 전역 변수이며 작동하지 않습니다 –

답변

-1

변경

JS에 첫 번째 코드 : 나는 init 함수 외부 변수 ToastInterval decalred 한

var vm = this, 
     ToastInterval; 
    function init(){ 
    ToastInterval = setInterval(getAllNotifications, 9000); // when user has logged out stop my interval 
    } 
    init(); 

    function getAllNotifications() { 
     // alert(commonApi.IsUserLoggedIn()) // alerts true if logged in else false //working properly 
      if (!IsUserLoggedIn()){ 
       clearInterval(ToastInterval); // This shows error ToastInterval is undefined as i have defined it in parent environment 
       return; 
      } 
      else { 
       notificationService.getNoti() // Call a service and get all notification 
      } 
     } 

.

+0

여전히 작동하지 않습니다. 내 setInterval은 여전히 ​​지워지지 않습니다. –

+0

더 이상 디버깅 할 수 있도록 바이올린을 제공 할 수 있습니까? –

+0

그것은 효과가 있었지만 아직도 얻지 못했습니다. 왜 내 변수가 효과가 없었습니다. –