Использование Angular 2, RC 5, я создаю форму для создания нового объекта модели. В раскрывающемся списке показаны параметры модели. Когда я перекодирую код, в раскрывающемся списке отображается дополнительный пробел < >, хотя он фактически не создан в DOM. Это как будто есть призрак < вариант > в верхней части списка.Угловой 2, RC5 - выпадающее меню имеет дополнительную опцию «призрака»
В следующем примере я создал модель с именем Example, которая имеет параметры «id» и «name».
import {Component} from '@angular/core';
import {Example} from './example-model';
@Component({
selector: 'my-app',
template: `
<form>
<h2>Dropdown</h2>
<select name="name" [(ngModel)]="example.name">
<option [value]="">Choose one</option>
<option *ngFor="let option of dropdown" [value]="option.val">
{{option.name}}
</option>
</select>
</form>
`,
})
export class AppComponent {
public example: Example;
public dropdown: {val: number, name: string}[] = [];
public ngOnInit(): void {
this.example = new Example();
this.dropdown = this._getDropdownValues();
}
private _getDropdownValues(): {val: number, name: string}[] {
return [
{val: 10, name: "Name #1"},
{val: 20, name: "Name #2"},
{val: 30, name: "Name #3"}
];
}
}
Почему я получаю призрак < вариант > в моем раскрывающемся списке?
Вы можете найти полный пример на Plunkr. Я включил предложения некоторых комментаторов о том, как исправить проблему, которая, к сожалению, тоже не работает.
В этом случае «Выберите один» вариант должен иметь пустое значение. Как это будет работать? – ebakunin
Вам необходимо назначить значение для этого, чтобы вы могли «исчезнуть». Вы бы интерпретировали это в своем коде и ассоциировали «XX» или что-то еще, что вы положили туда с пустым значением. – TheCount