2016-11-17 10 views
1

페이지로드시 모든 컨트롤을 비활성화하고 사용자가 반응 형 폼에서 추가 버튼을 클릭했을 때 모든 컨트롤을 활성화하려고했습니다. 그래서 이것을 달성하기 위해 html 템플릿에 [disabled] 속성을 사용했지만 아래 경고 메시지가 표시됩니다. 경고컨트롤을 동적으로 사용하지 않도록 설정하는 동안 경고 메시지가 표시됨 angular2

:

당신이 반응 양식 장애인 속성을 사용하고있는 것 같습니다

. 구성 요소 클래스에서이 컨트롤을 설정할 때 사용 안 함을 true로 설정하면 DOM의 disabled 특성이 실제로 설정됩니다. 이 방법을 사용하여 '확인 후 변경됨'오류가 발생하지 않도록하는 것이 좋습니다.

Example: 


    form = new FormGroup({ 
     first: new FormControl(
    {value: 'Nancy', disabled: true},Validators.required), 
     last: new FormControl('Drew', Validators.required) 
     }); 

이 경고 메시지를 방지하고 내 요구 사항을 달성하는 방법 저를 도와주세요. GünterZöchbauer가 올바른지 @

+0

경고가 표시하지 않습니까? 템플릿 기반 양식과 반응 양식을 함께 사용하는 것은 좋은 생각이 아닙니다. –

답변

0

, 경고는 프로그램 활성화/컨트롤을 사용하지 않도록해야한다고 말하고있는 중 생성에 예 또는 기능 .disable()를 통해 다음 중 하나를 제어 당 또는 최상위 곳에서 .enable() 기능 활성화 등 false로 지정하지 않는 한 그것은 아래로 전진합니다.

Reactive Form에서 [disabled]에 바인딩하면 동작이 예상대로 작동하지 않을 수 있습니다. AbstractControl 문서에서

:

비활성화 ({onlySelf, emitEvent}? {onlySelf? 부울, emitEvent? 부울}) : 무효 컨트롤을 사용하지 않습니다. 즉, 제어가 유효성 검사에서 제외되고 부모의 집계 값에서 제외됩니다. 상태는 DISABLED입니다.

컨트롤에 자식이 있으면 모델을 유지 관리하기 위해 모든 자식이 비활성화됩니다.

enable ({onlySelf, emitEvent} ?: {onlySelf ?: boolean, emitEvent ?: ) : void 컨트롤을 활성화합니다. 즉, 컨트롤은 유효성 검사에 포함 된 이고 해당 부모의 집계 값입니다. 상태는 해당 값과 유효성 검사기를 기반으로 다시 계산됩니다.

컨트롤에 자식이 있으면 모든 자식이 사용 가능하게됩니다.