我正在尝试按此Plunker
显示一个按钮<div ng-show="showbtn"><button class="fix btn btn-success" ng-click="top()">To the top</button></div>
在滚动事件中,我进行了$rootScope.$emit
调用,它也被触发,但不确定为什么$scope
值在mainCtrl
控制器$范围内没有被更改。 $scope
内的$rootScope
是不同的?
答案 0 :(得分:2)
事件处理程序(传递给$rootScope.$on
的函数)在Angular的正常摘要周期之外运行,因此您需要告诉父作用域某些内容已更改。您可以使用$apply
执行此操作:
$rootScope.$on('scrolled',function(event,data){
$scope.$apply(function () {
$scope.showbtn = data.message;
});
});
这里是updated Plunker。