我正在尝试使用ngModel在Angular 2中创建一个选择组件包装器。一旦更改选择,所有事件都会正确触发,但当它被呈现时,我无法设置初始选择。这是我的组件:
当我在父组件中初始化设置
我还尝试使用
@Component({
selector: 'my-dropdown',
inputs: ['selectedItem', 'items', 'label'],
outputs: ['selectedItemChange'],
template: `
<div class="field">
<label>{{label}}</label>
<select class="ui search selection dropdown" [ngModel]="selectedItem" (change)="onChange($event.target.value)">
<option value="" selected>Please Select</option>
<option *ngFor="#item of items" [value]="item.value">{{item.label}}</option>
</select>
</div>`
})
export class MyDropdownComponent {
items: DropdownValue[];
selectedItem: DropdownValue;
selectedItemChange: EventEmitter<any> = new EventEmitter();
private onChange(newValue) {
console.log(newValue);
this.selectedItem = this.items.find(item => item.value == newValue);
console.log(this.selectedItem);
this.selectedItemChange.emit(newValue);
}
}
我在视图中像这样使用它:
<my-dropdown [items]="selectItems" [(selectedItem)]="itemToSelect" [label]="'Please Select'"></my-dropdown>
当我在父组件中初始化设置
itemToSelect
值时,它不会在UI中设置所选选项的值。我还尝试使用
ngModelChange
事件,但它不会触发更改事件。
selectItems
。 - Mark Rajcok[ngModel] =“selectedItem.value”
会在未设置初始选择时导致错误,你有什么解决办法吗? - EnlitenedZAitemToSelect = {value: null};
- Mark Rajcok