Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 无法在<;上设置默认选择;离子选择>;论反应形式_Angular_Ionic Framework_Ionic2 - Fatal编程技术网

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;

    });