0

다른 지침에서 지침의 범위 변수를 액세스 :내가이 같은 창 스크롤에 범위 변수에 pageYOffset을 결합하는 지침을 만들었습니다

app.directive('scrollDirective',function(){ 
    return { 
     restrict: 'E', 
     link: function(scope,elem,attrs){ 
      angular.element(window).bind('scroll',function(){ 
       scope.watchScroll = pageYOffset; 
      }) 
     } 
    } 
}) 

그리고 내가 좋아하는 다른 지침에서 watchScroll 변수에 액세스하려고 이 :

뭔가 잘못했거나 범위 변수가 이런 지시문에서 다른 지시문에 액세스 할 수 없습니까?

내가 별도의 scrollDirective를 사용하는 이유는 응용 프로그램을 통해 pageYOffset을 사용하고 전역 변수가되기를 원하기 때문에 필요할 때마다 모든 지시문에서 해당 함수를 작성할 필요가 없기 때문입니다 미래에.

답변

0

추가 된 범위. scope.watchScroll = pageYOffset 뒤에 $ apply(); 모든 것이 훌륭하게 작동합니다.

0

예. $ scope. $ apply()를 호출해야합니다. Apply 함수는 일부 동작 (Jquery 플러그인, 일부 jQuery 함수, setTimeout 등) 내에서 범위를 업데이트 (트리거)하는 데 사용됩니다.

관련 문제