AngularJS でパーシャルを使用するときにボディクラスを設定する

StackOverflow https://stackoverflow.com//questions/20001521

  •  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!

ngクラスのドキュメント

他のヒント

これを試して:

コントローラ

function SampleCtrl($scope){
$scope.MyClass = 'Hello'
}

HTML

<body data-ng-app="" data-ng-controller='SampleCtrl'>
<div data-ng-class="MyClass">Hello World
</div>
</body>

サンプル JsFiddle

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top