Angularjs根本不更新ngClass

war*_*eet 9 angularjs angularjs-scope

我很确定这又是一件愚蠢的事.我正在学习angularjs所以我还没有得到完整的范围,但我已经到了那里.我尝试了所有的东西,并且真的寻找了我能找到的任何东西,但似乎没什

我正在尝试在我的布局文件中执行ng-class ="..."但是表达式是在我的控制器中设置但不知何故它没有呈现.当我把它放在我的ng-view文件中时它会被渲染.我知道他只渲染文件的一部分,但我希望他也在ng-view上渲染ng-class.这是可能的还是更容易在部分html文件中放入div.

简单的html文件

<body>
<ng-view ng-class="{ 'splash': splash=='splash' }"></ng-view>
</body>
Run Code Online (Sandbox Code Playgroud)

我的控制器

angular.module('xxx.splash')
    .controller('IndexCtrl', function($scope, $rootScope, config) {
        $rootScope.splash = 'splash';

        $scope.login = function(e) {
            alert('Soon. How soon? Very soon.');
        }
    });
Run Code Online (Sandbox Code Playgroud)

Ali*_*adi 33

在根范围中定义变量时,无法以在本地范围内定义变量的方式访问它.$rootScope可以使用AngularJS模板访问变量$root.<variableName>,因此您的HTML文件应更改为:

<body>
<ng-view ng-class="{ 'splash': $root.splash=='splash' }"></ng-view>
</body>
Run Code Online (Sandbox Code Playgroud)

你可以看到之探源$scope,并$rootScope在此演示

  • 为什么在html端不称为"$ rootScope"? (5认同)