簡體   English   中英

從另一個指令訪問指令的范圍變量

[英]Accessing a directive's scope variable from another directive

我創建了一條指令,將pageYOffset綁定到窗口滾動上的作用域變量,如下所示:

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

我正在嘗試從另一個指令訪問watchScroll變量,如下所示:

app.directive('anotherDirective',function(){
    return {
        restrict: 'A',
        link: function(scope,elem,attrs){
            scope.$watch(function(){return scope.watchScroll;},function(changes){
                console.log(changes);
            });
        }
    }
})

我是在做錯什么,還是無法從一個指令到另一個指令訪問范圍變量?

我擁有單獨的scrollDirective的原因是,我將在整個應用程序中使用pageYOffset,並且我希望它是一個全局變量,這樣我以后就不必在需要的每個指令中都創建該函數。

在scope.watchScroll = pageYOffset之后添加了scope。$ apply(); 一切都很好。

是的。您必須調用$ scope。$ apply()。Apply函數用於更新(觸發)某些操作(Jquery插件,某些jQuery函數,setTimeout等)中的作用域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM