1. ホーム
  2. angularjs

[解決済み】AngularJSで属性を条件付きで適用するための最良の方法は何ですか?

2022-04-16 14:33:50

質問

スコープ上のブール変数に基づいて、要素に例えば "contenteditable" を追加することができるようにする必要があります。

使用例です。

<h1 attrs="{'contenteditable=\"true\"': editMode}">{{content.title}}</h1>

の場合、contenteditable=trueが要素に追加されることになります。 $scope.editMode に設定されていた true . このng-classのような属性の振る舞いを簡単に実装する方法はないのでしょうか?ディレクティブを書いて、なければ共有することも考えています。

編集する 私の提案した attrs ディレクティブと、いくつかの類似点があることがわかります。 ng-bind-attrs は、1.0.0.rc3 で削除されましたが、1.0.0.rc3 では、以下のようになりました。 なぜでしょうか?

解決方法は?

ng-classが使えない場合(SVGのスタイリング時など)、class attrを条件付きで設定するために、以下のように使っています。

ng-attr-class="{{someBoolean && 'class-when-true' || 'class-when-false' }}"

他の属性タイプでも同じ方法が使えるはずです。

(ng-attr-を使うには最新の不安定なAngularである必要があると思います。私は現在1.1.4です)