2017-01-12 2 views
0

이 문제는 ngOnInit에서 양식을 채우기 위해 레코드 데이터에 대해 http GET을 수행하는 경우 발생합니다. 이 양식은 본질적으로 사용자가 정보를 편집하고 데이터베이스에 다시 저장할 수있는 페이지입니다. 제가 실행중인 문제는 사용자가 폼을 채우고 이전 PUT에서 분명히 model.BooleanValue = true라고 말한이 체크 박스를 선택하고 페이지가 초기화 될 때 체크 박스가 선택되면됩니다.[checked] = "model? .value"인 HTML 체크 박스는 모델 속성에 할당되면 null을 반환합니다.

<input type="checkbox" formControlName="isBoolean" [checked]="model?.BooleanValue" /> 

그러나, (체크 박스는 여전히 HTTP GET에서 체크) 나는 (어떤 방식으로 체크 박스를 편집하지 않고)는 PUT을 미리 형성 내가 확인란을 변경하지 않은 가정 할 수 있습니다. 양식 체크 박스 값을 model.BooleanValue에 할당하면 체크 박스 값/checked는 true가 아닌 null을 반환합니다.

다음은 모델뿐만 아니라 사용중인 FormToModel 메서드입니다. 내가 모델을 할당 할 때 잘 유일한 문제

export class BoolModel { 
    public BooleanValue: Boolean; 
} 

FormToModel(f: FormGroup) { 
    var model = new BoolModel(); 
    model.BooleanValue = f.controls['isBoolean'].value ? true : false; 
    return model; 
} 

가져 오기 및 PUT 작업입니다 - (근무하고 적절하게 확인하고 model.Boolean 값이 true에있는 확인란을 할당 얻을 ngOnInit가 있다고 가정하자) .BooleanValue = isBoolean.value PUT 중에 (isBoolean 값이 null이되어 폼이나 모델에서 시각적으로 확인란의 부울 값이 아닌 false가 할당됩니다.)

참고 : 확인란의 선택을 취소하고 다시 선택하면 값은 true가되고 null이 아닙니다. 따라서 올바른 값을 보내려면 확인란과 상호 작용해야합니다.

아마 뭔가 간단하게 고칠 수는 있지만 제대로 작동하지 않는 것 같습니다. 어떤 통찰력이라도 크게 감사 할 것입니다.

답변

0

잘 분명히 나는 ​​것 같다 ... 즉시 알아 내기 위해 질문을 게시 할 필요가 [ngModel] 수정에게 문제 ... 간단한 수정 ... 추가

<input type="checkbox" formControlName="isBoolean" [ngModel]="model?.BooleanValue" [checked]="model?.BooleanValue" />