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 に答える