从另一个指令访问指令的作用域变量
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()。应用函数用于更新(触发)某些操作(Jquery插件,某些jQuery函数,setTimeout等)中的范围。
相关文章:
- 如何将多槽transclude作用域设置为指令作用域
- 指令作用域始终为空
- 如何在angularjs中访问一个指令作用域值到另一个指令
- AngularJS指令作用域未解析(“属性名称未定义”错误)
- 角度指令作用域绑定在 ng-repeat中不起作用
- 指令 作用域更改时无法触发
- 角度JS指令作用域变量关系
- 如何使用用@定义的指令作用域生成ng-if
- 使用指令作用域变量呈现的动态模板
- 在指令作用域和控制器$scope之间共享数据
- 在没有自己的控制器的情况下使用指令作用域何时合适
- 是否可以链接指令作用域(例如obj.prop)
- 与控制器在同一元素中的自定义指令作用域
- 将指令作用域值绑定到HTML
- AngularJS-获取一个输入值并将其传递给父指令作用域
- 正在与子指令作用域共享作用域对象
- angularjs中没有更新指令作用域变量
- 如何从控制器调用指令作用域上的函数
- 从控制器外部访问指令作用域
- 异步上未更新指令作用域