Plunker : https://plnkr.co/edit/aWUE54EUMIm8rnw3PZOO?p=preview각도 2 하위 구성 요소를 검출하지 않은 변경 예 올바르게
먼저 버튼의 값을 증가시킨다. 값이 10보다 작 으면 버튼을 활성화해야합니다. 그렇지 않으면 버튼이 비활성화됩니다. 두 번째 버튼은 모든이의 확인을 찾고있는 경우에도 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으로 재설정 할 때이 업데이트되지 않습니다 출력 :
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
이 값이 설정 방법은 다음과 같습니다
set val(v: number){
this._val = v;
console.log("Marked for check with value "+this._val);
//this.cd.markForCheck();
this.cd.detectChanges();
}
markForCheck 중 하나 그래서 나는 정말 일 핸들을 제외하고 무엇을 모르는 작동하지 않습니다
e DOM 자신을 통해 ElementRef (이미 그것을 시도하고 그것을 작동),하지만 난 정말 이렇게 싶지 않아 =)
나는 문제를 감지하려고 노력하고 생성 된 팩토리 클래스가 이전 값을 비교하는 것 같아요 buttonClasses는 현재와 함께 작동하고 btn btn-outline-info btn-block
에서 btn btn-outline-info btn-block disabled
으로 갈 때 작동하지만 그 반대의 경우는 작동하지 않습니다.
그림은 두 번째 버튼으로 값을 재설정 할 때와 처음에 buttonClasses가 호출 될 때 발생하는 상황을 보여줍니다.
self._expr_2는 이전 값이며 btn btn-outline-info btn-block
이다 그러나 또한 disabled
이 있어야합니다. 현재 값은 disabled
클래스가 올바르지 않습니다.
도움을 미리 감사드립니다. 나는 진짜로 여기에서 무엇을 해야할지 모르겠다. ...
대단히 감사합니다. 예, 현재 뷰에서 루트를 확인하는 부분을 놓쳤습니다. 나는 그것이 다른 길이었다라고 생각했다 =) 나는 2 일 동안 나의 머리를 금 가게하고 있었다 =) – BizzyDizzy