angular - Angular 将下拉选择选项设置为迭代前的默认选择
问题描述
我有一个选择下拉列表,我从列表中迭代选项。我正在尝试将一个单独的选项设置为已选择(作为默认值),以防用户未选择值。
这是我尝试实现的方法:
<select [(ngModel)]="book.pageLayout">
<option [value]="0" [attr.selected]="book.defaultLayoutId === null">No Default Layout</option>
<option *ngFor="let l of availableLayouts"
[value]="l.id"
[attr.selected]="book.pageLayout == l.id">
{{l?.name}}
</option>
</select>
我也试过:
<option [value]="0" selected="selected">No Default Layout</option>
乃至:
<option [value]="0" selected="1==1">No Default Layout</option>
但以上都没有奏效。
欢迎任何帮助
解决方案
如果您使用的是 ngModel,则选择的属性不会有太大帮助,那么您可以轻松地将默认值设置为定义的模型。
<select [(ngModel)]="book.pageLayout">
<option value="">No Default Layout</option>
<option *ngFor="let l of availableLayouts" [value]="l.id">
{{l?.name}}
</option>
</select>
然后在component.ts里面
public book: any = {
pageLayout: ''
}
编辑
要设置默认选项,我们需要将 pageLayout 值设置为 id 而不是空字符串。
public book: any = {
pageLayout: 1
}
public availableLayouts: any = [
{
name: "One",
id: 1
},
{
name: "Two",
id: 2
}
]
推荐阅读
- sql-server - GROUP BY 最新用户但最新日期没有用户
- python - 我想使用正则表达式通过方括号拆分字符串
- django - 将 Selenium 制作的屏幕截图上传到 Amazon S3
- python - 用于无状态应用程序的 Python Flask-WTF CSRF
- javascript - Redux 状态改变后怎么办?
- python - 什么是迭代工具的更快替代方案?
- javascript - 当方法已经在基于类的组件中将其上下文作为“this”时,为什么需要将方法绑定到“this”
- java - 为什么 2020 年 3 月 30 日和 2020 年 3 月 1 日之间的差异错误地给出了 28 天而不是 29 天?
- r - 如何按项目对数据框进行排序?
- node.js - 上传时aws presigned url请求签名不匹配