これはangular 2で可能ですか?
<button type="submit" [disabled]="!validate && !SAForm.valid">Add</button>
両方の条件が当てはまる場合、ボタンが有効になることを期待しています。
私はすでに上記のコードを試しましたが、期待どおりに機能していません。
代わりにORが必要なようです:
<button type="submit" [disabled]="!validate || !SAForm.valid">Add</button>
これは、検証されていない場合、またはSAForm.validでない場合、ボタンを無効にします。
Component.tsで変数を宣言し、それを何らかの値に初期化します
buttonDisabled: boolean;
ngOnInit() {
this.buttonDisabled = false;
}
.htmlまたはテンプレートに、次のコードを配置できます。
<button disabled="{{buttonDisabled}}"> Click Me </button>
buttonDisabled
変数の値を変更することで、ボタンを有効/無効にすることができます。
他の答えに加えて、この推論はthe De Morganの法則としても知られていることを指摘したいと思います。実際にはプログラミングよりも数学の方が重要ですが、すべてのプログラマーが知っておくべき基本的なものです。
問題は次のように始まりました。
enabled = A and B
disabled = not ( A and B )
これまでのところは良いですが、さらに一歩進んでブレースを削除しようとしました。 and
/&&
をor
/||
に置き換える必要があるため、これは少し注意が必要です。
not ( A and B ) = not(A) OR not(B)
または、より数学的な表記で:
条件を単純化するか、確率を扱うときは常に、この法則を念頭に置いています。
次のように三項演算子を使用できます。[disabled]操作に対して内部的にtrueまたはfalseが必要です。
<button type="button"
[disabled]="(testVariable1 != 0 || testVariable2!=0)? true:false"
mat-button>Button</button>