9

我很确定这又是一件愚蠢的事情。我正在学习 angularjs,所以我还没有得到完整的范围,但我已经到了。我尝试了一切,并真正搜索了我能找到的任何东西,但似乎没有任何效果。

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

简单的html文件

<body>
<ng-view ng-class="{ 'splash': splash=='splash' }"></ng-view>
</body>

我的控制器

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

        $scope.login = function(e) {
            alert('Soon. How soon? Very soon.');
        }
    });
4

1 回答 1

34

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

<body>
<ng-view ng-class="{ 'splash': $root.splash=='splash' }"></ng-view>
</body>

你可以在这个演示中看到和的$scope区别$rootScope

于 2013-06-19T23:42:56.587 回答