0

私は2つの部門を持っています

<div ng-controller="controller1">
  <div ng-controller="controller2" class="{{changesindividually}}">
</div>
</div>

controller1 の内部には

$scope.changesindividually = 'one column wide'

controller2 の内部には

$scope.changesindividually = 'two column wide'

問題: 親クラスをこのように変更することは可能ですが、実行後:

$scope.changesindividually = 'two column wide'

子コントローラーから、{{changesindividually}} は、指定された「2 列幅」ではなく「2 列幅」に変更されます。 私の場合、css ロジックのためにこのクラスの順序が必要なため、これは問題です。

これを防ぐ方法はありますか?

4

1 に答える 1

1

Element のクラス関連のプロパティを操作するJavaScript APIを見ると、プロパティ (classList) が文字列ではなく、文字列のコレクションであることがわかります。文字列として扱うと、各環境の特定の実装に依存するさまざまなバグが発生する可能性があります (たとえば、Chrome は IE とは異なる動作をする可能性があります)。

CSS 自体はクラスの順序を気にしないので、要素のクラスを操作する方法に問題があると仮定します。順序に依存せず、全体的に健全なバージョンのclassList APIを使用して、目標を達成することを検討してください。

また、要素に動的クラスを設定し、壊れやすい文字列操作を避けるためにng-classを検討する必要があります。

<div ng-controller="controller2" ng-class="clsArray">

$scope.clsArray = ['one', 'column', 'wide'];
于 2015-05-15T16:58:40.100 に答える