angular2从选择列表中选择选项
我想从我的选项列表中显示默认选项“全部”,但它不起作用 filter.component.tsangular2从选择列表中选择选项,angular,Angular,我想从我的选项列表中显示默认选项“全部”,但它不起作用 filter.component.ts @Output()onFilter=neweventemitter(); 状态选项=[ {value:'active',viewValue:'active'}, {value:'inactive',viewValue:'inactive'}, {value:'pending',viewValue:'pending'} ]; onStatusChange(val){ 如果(val==“”){ this.
@Output()onFilter=neweventemitter();
状态选项=[
{value:'active',viewValue:'active'},
{value:'inactive',viewValue:'inactive'},
{value:'pending',viewValue:'pending'}
];
onStatusChange(val){
如果(val==“”){
this.onFilter.emit(“”);
}
否则{
emit(`?status=${val}`);
}
}
filter.component.html
全部的
{{status.viewValue}}
使用[ngModel]=“selected”
而不是selected=“selected”
如果组件字段
selected
引用了statusOptions
中的所选值,则它不起作用,使用上面的代码而不是selected=“selected”您为selected
分配了什么?我想你需要选择:any=''
,因为最初要选择的元素不是由*ngFor
创建的,并且具有值```。实际上,它应该是value=“”
或[value]=“”
或选择的:任意;//没有=''
(初始化为null
)All>>您的意思是这样吗?此部分selected=“selected:any=”
在模板中是多余的。这段代码是要添加到components类中的。是的,这段代码应该可以工作。阅读评论,我发现您错误地使用了(ngModel)
而不是Günther建议的->[ngModel]
只需从您的选项中删除selected=“selected”
,然后使用Günther建议的代码:)
@Output() onFilter = new EventEmitter<String>();
statusOptions = [
{ value: 'active', viewValue: 'Active' },
{ value: 'inactive', viewValue: 'Inactive' },
{ value: 'pending', viewValue: 'Pending' }
];
onStatusChange(val) {
if (val === "") {
this.onFilter.emit("");
}
else {
this.onFilter.emit(`?status=${val}`);
}
}
<form class="filter-form">
<md-select (ngModelChange)="onStatusChange($event)" name="filter">
<md-option [value]="" selected="selected">All</md-option>
<md-option [value]="status.value" *ngFor="let status of statusOptions">
{{status.viewValue}}
</md-option>
</md-select>
</form>
<md-select [ngModel]="selected" (ngModelChange)="onStatusChange($event)" name="filter">