ioni c 4: у меня возникла ошибка во время использования (ionChange) Select-Option для отображения студентов, которые выбрали конкретный c предмет - PullRequest
0 голосов
/ 17 июня 2020
• 1000 в Object.eval [как 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);
          }
        });


      });

1 Ответ

1 голос
/ 17 июня 2020

Ваш 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. Я передаю viewStudents объект selected, если он определен в ngModel
...