[英]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.