2017-11-13 23 views
1

기본적으로 옵션을 선택하고 싶지만 선택에서 NgModel 지정 문을 제거해야 작동합니다. 그것은 완벽하게 작동하지만 분명히 내가 필요한 아니라면템플릿에서 각도 4 옵션이 기본적으로 선택되었습니다.

<select id="privileges" name="privileges" class="form-control" [(ngModel)]="value" required> 
    <option [selected]="(user | async).privileges == Administrador" value="Administrador">Administrador</option> 
    <option value="Empleado">Empleado</option> 
</select> 

은 내가 ngmodel 지시어를 제거합니다.

+0

이 코드는 컨트롤러의 "값"이 "Administrator"또는 "Empleado"와 같은지 확인하십시오. 선택이 비어있는 것이 확실하지 않으면 FormsModule 또는 NgModelModule도 가져와야합니다 . – kriss

+0

컨트롤러의 데이터가 정상입니다. 그리고 실제로, Model에서 지시문을 제거하면 모든 것이 잘 동작합니다. 이 지시어를 추가하지 않으면 왜 작동하지 않습니까? 거기서 무슨 일이있을 수 있니? –

답변

0

[selected]="..."ngModel과 호환되지 않습니다.

값을 선택하려면 값을 value 필드에 할당하십시오. 각도는 옵션이 선택되도록합니다. value="..."value 필드에 할당 된 값과 같으며 [(ngModel)]="value"에 사용됩니다.

사용 된 값이 문자열이 아닌 경우 [value]="..." 또는 value="{{...}}" 대신 [ngValue]="..."을 사용하십시오.

+0

그리고 컨트롤러에 데이터를 어떻게 가져 옵니까? ngModel을 배치하지 않으면 select에 대한 값이 객체에 표시되지 않습니다. –

+0

'user.subscribe (val => this.value = privileges == Administrador)'또는 유사합니다. 더 많은 코드를 보지 않고 말하기가 어렵습니다. 어쨌든'관리자 '란 무엇입니까? 이것이 문자열이라면 따옴표 ('... == 'Administrator'')를 추가해야합니다 ('ngModel'과 같이 작동하지 않기 때문에'selected = "..." –