Rad*_*ina 16 javascript angular2-forms angular
我尝试为选项添加默认值.它就像一种占位符,我用这种方法来做.在纯HTML中它可以工作,但如果我尝试使用*ngForangular 2属性,它不会选择任何东西.
这是我在纯HTML中使用的代码:
<select name="select-html" id="select-html">
<option value="0" selected disabled>Select Language</option>
<option value="1">HTML</option>
<option value="2">PHP</option>
<option value="3">Javascript</option>
</select>
Run Code Online (Sandbox Code Playgroud)
并使用Angular模板:
<select name="select" id="select" [(ngModel)]="selectLanguage">
<option *ngFor="let item of selectOption"
[selected]="item.value==0"
[disabled]="item.value==0">{{item.label}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这堂课是
import {Component} from '@angular/core';
@Component({
moduleId: module.id,
selector: 'app-form-select',
templateUrl: 'default.component.html'
})
export class DefaultComponent {
private selectOption: any;
constructor() {
this.selectOption = [
{
id: 1,
label: "Select Language",
value: 0
}, {
id: 2,
label: "HTML 5",
value: 1
}, {
id: 3,
label: "PHP",
value: 2
}, {
id: 4,
label: "Javascript",
value: 3
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想Select Language被选为默认值.它被禁用但未被选中.
如何选择它作为默认值?
Gün*_*uer 22
更新
添加了4.0.0-beta.6compareWith
<select [compareWith]="compareFn" [(ngModel)]="selectedCountries">
<option *ngFor="let country of countries" [ngValue]="country">
{{country.name}}
</option>
</select>
compareFn(c1: Country, c2: Country): boolean {
return c1 && c2 ? c1.id === c2.id : c1 === c2;
}
Run Code Online (Sandbox Code Playgroud)
这样,分配给的实例selectedCountries不需要是相同的对象,但可以传递自定义比较函数,例如,以便能够匹配具有相同属性值的不同对象实例.
原版的
如果要将对象用作值,则需要[ngValue]在option元素上使用.
<select name="select" id="select" [(ngModel)]="selectLanguage">
<option *ngFor="let item of selectOption" [ngValue]="item"
[disabled]="item.value==0">{{item.label}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
如果selectLanguage分配了选项值,[(ngModel)]="..."则此选项将默认选中:
import {Component} from '@angular/core';
@Component({
moduleId: module.id,
selector: 'app-form-select',
templateUrl: 'default.component.html'
})
export class DefaultComponent {
private selectOption: any;
constructor() {
this.selectOption = [
{
id: 1,
label: "Select Language",
value: 0
}, {
id: 2,
label: "HTML 5",
value: 1
}, {
id: 3,
label: "PHP",
value: 2
}, {
id: 4,
label: "Javascript",
value: 3
}
];
this.selectLanguage = this.selectOption[0];
}
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*ker 15
我发现从selectOption数组中删除默认选项并单独指定默认的不可选选项会更好.
<select name="select" id="select" [(ngModel)]="selectLanguage">
<option [ngValue]="undefined" disabled>Select Language</option>
<option
*ngFor="let item of selectOption"
[value]="item.value"
>
item.label
</option>
</select>
Run Code Online (Sandbox Code Playgroud)
请尝试以下示例代码:
用yourValue您要选择默认值的任何值 替换
<select placeholder="country" >
<option *ngFor="let country of countriesList" [ngValue]="country" [selected]="country.country_name == yourValue" >
{{country.country_name}}
</option>
</select>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46548 次 |
| 最近记录: |