AngularJS で条件付きで属性を適用する最適な方法は何ですか? 質問する

AngularJS で条件付きで属性を適用する最適な方法は何ですか? 質問する

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

使用例:

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

$scope.editModeに設定されている場合、要素に contenteditable=true が追加されますtrue。この ng-class のような属性の動作を実装する簡単な方法はありますか? ない場合は、ディレクティブを記述して共有することを検討しています。

編集:私が提案したattrsディレクティブとng-bind-attrs ですが、1.0.0.rc3 で削除されました。、 なぜそうなのか?

ベストアンサー1

ng-class が使用できない場合 (たとえば、SVG のスタイル設定時) に、クラス属性を条件付きで設定するために以下を使用しています。

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

同じアプローチは他の属性タイプにも適用できるはずです。

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

おすすめ記事