Angular 无法在<;上设置默认选择;离子选择>;论反应形式
我需要以被动形式动态加载Angular 无法在<;上设置默认选择;离子选择>;论反应形式,angular,ionic-framework,ionic2,Angular,Ionic Framework,Ionic2,我需要以被动形式动态加载。它工作正常。现在我需要设置默认选择。我使用了选择了属性。但是它不工作。你能告诉我为什么吗 这是 app/home.page.html 更新: this.getDonation().then((val) => {//get Donation this.donation = val; if (this.donation.sponsordata == 1) { this.detailInformationForm.control
。它工作正常。现在我需要设置默认选择。我使用了选择了属性。但是它不工作。你能告诉我为什么吗
这是
app/home.page.html
更新:
this.getDonation().then((val) => {//get Donation
this.donation = val;
if (this.donation.sponsordata == 1) {
this.detailInformationForm.controls['attendees'].validator = Validators.required;
}
let donationDates = this.donation.donationdates;
let dates = [];
_.forEach(donationDates, function (value, key) {
value.isChecked = false;
if (key == 0) {
value.isChecked = true;
}
dates.push(value);
});
this.donationDates = dates;
});
反应式表单中的控件将管理所选项目
只需指定
要选择的donationdate
控件:
this.donationDates=[
{
id:null,
捐赠ID:“2”,
捐赠日期:“2017-03-12”,
日期描述:“Vad Bij”,
我被检查过:是的
},
{
id:null,
捐赠ID:“2”,
捐赠日期:“2017-03-19”,
日期描述:“南撒旦”,
被检查:错误
}
]
const checked=this.donationDates.find(donationDate=>donationDate.isChecked);
this.detailInformationForm=formBuilder.group({
捐赠日期:
[
选中?选中。捐赠日期:空,
需要验证器
]
});
我已经更新了答案。我没有注意到您使用的是donationdate
属性作为控件值,而不是包含它的对象实例。是否需要从html页面中删除[selected]
?是的,这是无效的。Angular的ControlValueAccessor
将为您管理选择。您只需在创建FormGroup
时指定要选择的值,或稍后通过调用等方式指定值。否,则它根本不起作用。如果你更新了我共享的plunker,你也可以看到。应该会有帮助。并讨论setValue
和patchValue
。
export class HomePage {
donationDates:any=[];
detailInformationForm: FormGroup;
constructor(public navController: NavController,public formBuilder: FormBuilder) {
this.donationDates = [
{
id: null,
donationid: "2",
donationdate: "2017-03-12",
datedescription: "Vad Bij",
isChecked:true
},
{
id: null,
donationid: "2",
donationdate: "2017-03-19",
datedescription: "Sud satam",
isChecked:false
}]
this.detailInformationForm = formBuilder.group({
donationdate: ['', Validators.required]
});
}
}
this.getDonation().then((val) => {//get Donation
this.donation = val;
if (this.donation.sponsordata == 1) {
this.detailInformationForm.controls['attendees'].validator = Validators.required;
}
let donationDates = this.donation.donationdates;
let dates = [];
_.forEach(donationDates, function (value, key) {
value.isChecked = false;
if (key == 0) {
value.isChecked = true;
}
dates.push(value);
});
this.donationDates = dates;
});