Nativescript получает свойства из дочернего элемента в ng-repeat - PullRequest
0 голосов
/ 05 марта 2019

У меня есть динамически сгенерированный контрольный список в Angular / Nativescript, например:

<StackLayout *ngIf="assessment">
         <StackLayout *ngFor="let instance_item of assessment.exam_instance_items; let i= index">
               <ns-examitem [attr.id]="'item_'+instance_item.id" [assessmentitem]="instance_item"
                  (changeEvent)="validateExam($event)"></ns-examitem>
          </StackLayout>
</StackLayout>

, где на экзамене есть элемент управления с радио-кнопкой, связанный со значением

(в examitem.component.ts- дочерний компонент)

// get the values out
   public selectedvalue: string = '';

   // tell the world something's changed, trigger validation
  @Output() changeEvent = new EventEmitter();

  changeCheckedRadio(radioOption: RadioOption): void {
    // uncheck all other options
    this.radioOptions.forEach(option => {
      if (option.value !== radioOption.value) {
        option.selected = false;
      } else {
        option.selected = true;
        this.selectedvalue = option.value;
        this.assessmentitem.selectedValue = this.selectedvalue;
      }
    });
    // tell the world the value has changed
    console.log('ExamitemComponent.Radio option changed to:' + this.selectedvalue)
    this.changeEvent.emit();
  }

Я действительно изо всех сил пытаюсь получить выбранное значение из компонентов examitem в родительском компоненте.Я могу получить ссылку на компонент по идентификатору, но не могу прочитать значение.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 05 марта 2019

Вы должны передать значение, которое хотите получить в родительском компоненте, например, так:

this.changeEvent.emit(this.selectedvalue);

Затем в родительском компоненте вы можете использовать это значение в функции validateExam.

...