web-dev-qa-db-ja.com

AngularJS入力からチェックボックスを無効にするにはどうすればよいですか?

<div ng-repeat="x in spaceutilization">
  <input type="checkbox" name="{{x.filenumber}}" id="{{x.id}}" class = "pdffiles" value="101SP{{x.initials}}.dwg" /><label for="{{x.id}}"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />
</div>

このスニペットに、{{x.status}}などの別のAngularJS入力に基づく入力チェックボックスを無効にするものを追加できるようにする必要があります。私は単にやってみました:

<input type="checkbox" name="{{x.filenumber}}" id="{{x.id}}" class = "pdffiles" value="101SP{{x.initials}}.dwg" {{x.status}} />

どこ status:'disabled'しかし、それはの出力を与えました

{{x.status}}=""

input要素内...理由がまったくわかりません。しかし、それは最も簡単なルートのように見えました。

7
Christine268

ng-disabled="expression"ディレクティブを使用する必要があります。式の評価値の基本では、無効化された属性をその要素に追加します。より良い属性値の評価には、ng-attrディレクティブを使用することもできます

マークアップ

<input type="checkbox" ng-attr-name="{{x.filenumber}}" ng-attr-id="{{x.id}}" class ="pdffiles" 
value="101SP{{x.initials}}.dwg" ng-disabled="x.status == 'disabled'"/>

x.statusbool値を返す場合は、直接使用できますng-disabled="{{x.status}}"

13
Pankaj Parkar