我参与过角度4项目 在这个项目中,我需要在选择列表中将第一个选项设置为默认选项 但问题是这个选择框位于子组件下,来自此选择框的数据是从父组件传递的 为了更好地理解代码如下:
父组件html:
<serviceSelect [services]="services"></serviceSelect>
子组件html:
<select [(ngModel)]="selectedServiceType" [ngModelOptions]="{standalone: true}" (ngModelChange)="getServiceType($event)">
<ng-container *ngFor="let service of settings?.service_type">
<option [ngValue]="service">{{service.name}}</option>
</ng-container>
</select>
子组件.ts代码:
import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import { FormBuilder, FormGroup, Validators, FormArray, FormControl } from '@angular/forms';
@Component({
selector: 'serviceSelect',
templateUrl: './serviceSelect.component.html',
styleUrls: ['./serviceSelect.component.scss']
})
export class serviceSelectComponent {
@Input() services : any;
selectedServiceType: any;
getServiceType(event) {
this.selectedServiceType = event;
}
}
我们无权访问ngOnInit
或ngAfterViewInit
中的服务变量
我试图通过这些函数设置默认值。如果有任何其他建议如何将第一个选项作为默认值让我知道。