angular - 悬停时角度2扩展选择
问题描述
我们有一个包含许多 mat-selects 的表单(基本上是下拉菜单)。我们使用这些,因此我们不必进行痛苦的验证,因为用户无法输入垃圾。他们只能选择一个有效值。现在用户抱怨他们必须滚动浏览这么多项目才能找到合适的项目。我们希望通过仅显示他们最有可能/通常 90% 的时间使用的选项来改进这一点,并且仅当它们悬停在名为“显示更多”或类似内容的最后一个选项上时才显示其他选项。我在 stackblitz 上有一个基本的骨架设置。欣赏任何指针/工作代码。完全卡住了。这与延迟加载无关。只是视觉上的诡计。 https://stackblitz.com/edit/angular-showmo
解决方案
这样的事情应该做你需要做的事情。
https://stackblitz.com/edit/angular-showmo-nftpk7?embed=1&file=app/select-overview-example.html
将禁用的布尔值添加到接口
export interface Food {
value: string;
viewValue: string;
disabled: boolean;
}
定义默认食物数组
foods: Food[] = [
{ value: 'steak-0', viewValue: 'Steak', disabled: false },
{ value: 'pizza-1', viewValue: 'Pizza', disabled: false },
{ value: 'tacos-2', viewValue: 'Tacos', disabled: false },
{ value: 'showSpecials', viewValue: 'Show Specials', disabled: true },
];
addSpecials(food)
if 追加新值的方法food.value == 'showSpecials'
。
addSpecials(food) {
if (food.value == 'showSpecials') {
this.foods.push(
{ value: 'pizza-special-1', viewValue: 'PizzaSpecial', disabled: false },
{ value: 'tacos-2-special-2', viewValue: 'TacosSpecials', disabled: false }
)
}
}
html 禁用特价选项并调用addSpecials()
鼠标输入。
<h4>Basic mat-select</h4>
<mat-form-field>
<mat-select placeholder="Favorite food">
<mat-option *ngFor="let food of foods" [value]="food.value" [disabled]="food.disabled" (mouseenter)="addSpecials(food)">
{{food.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
推荐阅读
- c# - 如何使用 C# 在 Pandoc 中更改目录?
- javascript - 在 Typings Declaration 中将函数声明为参数
- java - 为什么在休眠中的 OneToMany 映射中使用 Set
- symfony - Symfony 3 匿名路由
- c# - 类型 null 不可分配给类型 IJobDetails (这是我的界面)
- ios - iOS:如何指定用于将主机名解析为 IP 地址的 DNS?
- python - 同一类的方法参数类型
- python - Django:DiscoverRunner 覆盖引发错误
- javascript - 如何限制要输入的文本框中的任何特定字符。我只想限制 ^ 和 %
- angular - ag-grid angular 在排序或 CRUD 操作后不更新行索引