Я хочу заказать свой список автомобилей в дочернем компоненте, выбрав элемент управления из другого дочернего компонента. Но когда я пытаюсь измениться, я получаю сообщение об ошибке типа «Невозможно прочитать свойство GetCarList из неопределенного». Я не слишком разбираюсь в Angular, поэтому не могу найти выход в интернет.
А вот мои коды;
index.html;
<rac-carlistinfo></rac-carlistinfo>
<rac-carlistitems></rac-carlistitems>
- Дочерний компонент с элементом управления Select
info.html;
<select id="slcOrder" name="slcOrder" class="m-select" (change)="onChange($event)">
<option *ngFor="let item of orderList" value="{{ item?.Code }}">{{ item?.ShortDescription }}</option>
</select>
info.ts (CarsListInfoComponent)
import { Component, Output } from '@angular/core';
import { SiteService } from '../../../../services/site';
import { CarsListItemsComponent } from './items';
@Component({
selector: 'rac-carlistinfo',
templateUrl: './info.html'
})
export class CarsListInfoComponent {
errorMsg: string;
orderList: any;
@Output() carListOrder: CarsListItemsComponent;
constructor(private service: SiteService) {
}
ngOnInit() {
this.GetLangContent();
}
onChange(event) {
var target = event.target || event.srcElement || event.currentTarget;
this.carListOrder.GetCarList(target.value);
}
GetLangContent() {
this.service.get("Site", "GetLangContentByCode", "order").subscribe((resData: any) => {
this.orderList = resData;
}, resError => this.errorMsg = resError);
}
}
- Дочерний компонент со списком автомобилей
элементов. html;
<div *ngFor="let item of carList">
<h2>{{ item?.Title }}</h2>
<span>{{ item?.Price }} TL</span>
</div>
items.ts (CarsListItemsComponent)
import { Component } from '@angular/core';
import { SiteService } from '../../../../services/site';
@Component({
selector: 'rac-carlistitems',
templateUrl: './items.html'
})
export class CarsListItemsComponent {
errorMsg: string;
carList: any;
constructor(private service: SiteService) {
}
ngOnInit() {
this.GetCarList();
}
public GetCarList(order: string = null) {
this.service.get("Site", "GetCarList", order).subscribe((resData: any) => {
this.carList = resData;
}, resError => this.errorMsg = resError);
}
}