Plunker: https://plnkr.co/edit/aWUE54EUMIm8rnw3PZOO?p=preview角度2子コンポーネント検出しない変更例に正しく
最初のボタンは、値をインクリメントします。値が10未満の場合は、ボタンを有効にする必要があります。それ以外の場合は、ボタンを無効にする必要があります。 番目のボタンは、すべてがで[OK]を見ているにもかかわらず、0
this.button1 = new ButtonAction(
"info",
"check",
"right",
"Click me!",
"medium",
true,
true,
new Command(
() => this.val += 1,
() => {
return this.val < 10;
}
),
false
);
this.button2 = new ButtonAction(
"info",
"check",
"right",
"Reset first button!",
"medium",
true,
true,
new Command(
() => this.val = 0,
null
),
false
);
値は、最初のボタンが実際に自分自身を無効に10に達するまで値をリセットしますが、私は値を0にリセットしたときには更新されません。出力:markForCheckはどちらか動作しません
set val(v: number){
this._val = v;
console.log("Marked for check with value "+this._val);
//this.cd.markForCheck();
this.cd.detectChanges();
}
番目の取り扱いを除きので、私は本当に何をするか分からない:
Marked for check with value 7
btnClass: btn btn-outline-info btn-block
isDisabled: false
Marked for check with value 8
btnClass: btn btn-outline-info btn-block
isDisabled: false
Marked for check with value 9
btnClass: btn btn-outline-info btn-block
isDisabled: false
Marked for check with value 10
btnClass: btn btn-outline-info btn-block disabled
isDisabled: true
Marked for check with value 0
btnClass: btn btn-outline-info btn-block
isDisabled: false
これは値が設定されている方法ですe DOMをElementRefで処理しています(すでに試してみましたが動作しますが)。実際にこれをやりたいとは思わない=)
私は問題を検出しようとしていました。現在のボタンクラスはbtn btn-outline-info btn-block
からbtn btn-outline-info btn-block disabled
になると動作しますが、それ以外の方法では動作しません。
画像には、2番目のボタンで値をリセットしたときと、buttonClassesが初めて呼び出されたときにどうなるかが示されています。
self._expr_2は前の値であり、それはbtn btn-outline-info btn-block
だが、それはまたdisabled
を持っている必要があります。現在の値にはdisabled
クラスが正しくありません。
ご協力いただきありがとうございます。私は実際にここで何をすべきかわからない...
ありがとうございました。はい、私はそれが現在のビューからルートに向かってチェックする部分を見逃しました。私はそれが別の方法だったと思った=)私は今2日間私の頭を割っている=) – BizzyDizzy