ionic 4: 我在使用(ionChange)选择选项显示选择特定科目的学生时出现错误

问题描述 投票:0回答:1

我试图显示在选择选项中选择科目后选择特定科目的学生,当我使用 (ionChange)=viewStudents(subject.subid,subject.name)我得到了错误,这个错误。Cannot read property 'subid' of undefined at Object.eval [as handleEvent] (MarksViewPage.html:127)事实上,当我使用 viewStudents(subject.subid,subject.name) 在(点击)其他方法其工作。

请帮我解决这个错误

html:

    <ion-item>
      <ion-select [(ngModel)]="selected" (ionChange)="viewStudents(subject.subid,subject.name)">
     <ion-select-option *ngFor="let subject of choosedSubjects_viewMarks;let i=index" 
     [value]="subject.subid">{{subject.name}}</ion-select-option> 
    </ion-select>
    </ion-item>

.ts文件。

    async viewStudents(sub_id,sub_name) {
         this.SujectID = sub_id;
         this.title = sub_name;
         this.enable_subjects = false; 
         **this.enable_students = true;**
         this.searchlistResult = false;
         this.ionViewDidEnter() ;
            }

当我禁用其他列表时,这个列表会显示。

  async viewMarks(studentid,input) {

        console.log(studentid, this.teach_id, this.SujectID, input);

        return new Promise(resolve => {
          let body = {
          aksi: 'add_marks',
          sid:   studentid,
          tid:   this.teach_id,
          subID: this.SujectID,
          marks: input
        }
        this.accessProvds.postData(body,'proses_api.php').subscribe((res: any) => {
          if (res.success == true) {
            this.presentToast('Added successfuly!');
            this.ionViewDidEnter();

          } else {
            this.presentToast(res.msg);
          }
        });


      });
angular ionic-framework ionic3 ionic4
1个回答
1
投票

你的 subject 被定义为ngFor指令的迭代器。然而,你的 ionChange 是定义在外面的。因此它不知道什么是主题。

为了使你的代码能够正常工作,你的模板应该如下所示。

<ion-item>
     <ion-select [(ngModel)]="selected"
                 (ionChange)="viewStudents(selected.subid,selected.name)">
     <ion-select-option *ngFor="let subject of choosedSubjects_viewMarks; let i=index" 
     [value]="subject">{{subject.name}}</ion-select-option> 
    </ion-select>
</ion-item>

请注意两个重要的点:

  1. 我把整个 subject 对象作为选项值
  2. 我传给 viewStudentsselected 对象,只要它在 ngModel
© www.soinside.com 2019 - 2024. All rights reserved.