【发布时间】:2016-05-15 19:29:41
【问题描述】:
我有以下标记:
<select [ngModel]="selectedCategory"
(ngModelChange)="selectCategory($event && $event != 'null' ? $event : null)">
<option [value]="null">(all categories)</option>
<option *ngFor="let cat of categories" [ngValue]="cat">{{cat.name}}</option>
</select>
在 TypeScript 中:
export class MyComp {
public categories: Category[];
public selectedCategory: Category;
public selectCategory(cat: Category) {
this.selectedCategory = cat;
doStuff();
}
}
这看起来不像是正确的方法。是否有任何其他不那么冗长的方法来获取值为 null(不是“null”)的默认选项?我不能将默认选项放在类别数组中,因为它会弄乱其他代码。而且我不介意ngModelChange,因为我需要在选择时运行自定义代码。这只是我想清理的$event && $event != 'null' ? $event: null 部分。
我不能在默认选项上使用[ngValue];它只是给了我一个0: null(字符串)的值。并且跳过设置值会导致绑定selectedCategory=null 与默认选项不匹配,从而使组合框在初始化时未选中。
【问题讨论】: