AngularJS:为什么我不能将类绑定切换到窗口滚动事件?

时间:2017-01-05 17:42:54

标签: angularjs

如果/当页面滚动时,我试图在元素上切换一个类。

我已经关注this SO thread但是当我尝试链接一个指令时,我甚至没有得到日志语句。

尝试跟随角度文档,我得到了这样的component.js文件。我可以显示日志语句,但是类永远不会被切换。

dashboard.component.js

angular.module('dashboard')
    .component('dashboard', {
    'templateUrl': 'dashboard/dashboard.template.html',
    controller: function dashboardController($scope, $window, $mdSidenav) {
        var primaryAppBar = angular.element(document.querySelector('#primaryAppBar'));

        angular.element($window).bind('scroll', function () {
            if (this.pageYOffset > 0) {
                console.log('add shadow');
                $scope.boolChangeClass = true;
            } else {
                console.log('remove shadow');
                $scope.boolChangeClass = false;
            }
        });
        ...

应用-bar.template.html

<md-toolbar id="primaryAppBar" ng-class="{'md-whiteframe-1dp':boolChangeClass}">
...

1 个答案:

答案 0 :(得分:0)

dashboard.component.js 中的范围与 app-bar.template.html 中的范围不同。要么让它们在同一个控制器下,要么提供一些东西来传递for (Class<? extends Exception> exceptionClass : acceptableExceptions) { if (exceptionClass.isInstance(e)) { // it is your exception } } 变量。