AngularJS でパーシャルを使用するときにボディクラスを設定する
-
20-12-2019 - |
質問
AngularJS 初心者の質問です。
Index.html、コントローラー、およびパーシャルを持っています。
私の <body>
タグはindex.html内にあります...そして、コントローラーのボディのクラスを設定したいと思います。
そこで値を貼り付けてみました $scope.body_class
次に、次のように、index.html でその変数を参照します。
<!doctype html>
<html lang="en" ng-app="myGreatApp">
...
<body ng-class="{body_class}"> {{body_class}} Hi!
しかし body_class
値を返しません。
どうすれば入手できますか body_class
値を返すには?
解決
まず、コントローラーがディレクティブと対話できるようにするには、要素または親要素でコントローラーを定義する必要があります (または、代わりに $rootScope を挿入して使用する必要があります)。また、ng-class ディレクティブはハッシュ、それで
<body ng-controller="YourController" ng-class="{body_class: <expression>}"> {{body_class}} Hi!
で、もし <expression>
thruthy なら html を取得します class
それはハッシュ内のキーに対応します。
<body ng-controller="YourController" ng-class="{body_class: true}" class="body_class"> whatever value $scope.body_class has Hi!
マークアップでクラス名を宣言する必要がない場合、ng-class ディレクティブは直接バインディングも受け入れるため、代わりに次のようにすることができます。
<body ng-controller="YourController" ng-class="body_class"> {{body_class}} Hi!
他のヒント
これを試して:
コントローラ
function SampleCtrl($scope){
$scope.MyClass = 'Hello'
}
HTML
<body data-ng-app="" data-ng-controller='SampleCtrl'>
<div data-ng-class="MyClass">Hello World
</div>
</body>
所属していません StackOverflow