2016-06-15 1 views
3

'유효한'입력이있는 구성 요소를 작성하고 있습니다. 값을 상위 구성 요소의 구성원에 바인딩하면 모든 것이 잘 작동합니다. 내가 그렇게템플릿 참조 변수 ngForm을 입력 바인딩으로 사용하는 각도 2

<step [valid]="name.valid"> 

     <input type="text" name="name" 
      #name="ngForm" 
      [(ngModel)]="name" 
      required> 

</step> 

같은 템플릿 참조에 바인딩하지만 나는 부분적으로 이해

Expression has changed after it was checked. Previous value: 'true'. Current value: 'false'

를 얻을. ngForm 유효한 검사가 구성 요소 초기화 후에 발생하므로 값이 변경되었습니다. 내가 얻지 못하는 이유는 이것이 왜 문제이며 이것이 enableProdMode()를 호출하여 해결할 수있는 이유와 enableProdMode()가 나쁜 아이디어 인 이유입니다.

또한 .detach() 및 .reattach()로 ChangeDetectorRef를 시도하여 변경 감지를 일시적으로 사용하지 않도록 설정했으나 문제를 해결하지 못했으며 나쁜 생각처럼 들립니다.

의견이 있으십니까?

답변

2

알려진 문제입니다. 대신 사용하십시오

<form #f="ngForm"> 
    <step [valid]="f.controls['name'].valid"> 
+0

감사합니다. 내가하려고하면 오류 : 잡히지 않는 (약속 있음) : 참조 또는 변수에 할당 할 수 없습니다! – Daco

+0

무엇에 할당 할 수없는 몇 가지 세부 사항? –

+0

어떤 Angular2 버전을 사용하고 있습니까? '

' 태그는 어떻게 생겼습니까? –

관련 문제