Привет, у меня есть вопрос, как это реально работает. У меня есть родительский и дочерний компоненты 2 (я показываю только часть кода, потому что мой проект работы).Ребенок не определяет родительские изменения Угловые 2
Таким образом, родительский компонент часть шаблона:
<product-empty [showHistoryMonth]="showHistoryMonth" [showHistoryAvg]="showHistoryAvg"
[SP_L_FCSQData]='SP_L_FCSQData'
[allHistoryAvgNames]="allHistoryAvgNames" [salesPlanId]="salesPlanId" [allHistoryChannels]="allHistoryChannels" [airingsNames]="airingsNames"
[allForecastMonthChannels]="allForecastMonthChannels" [forecastShows]="displayArry"
[allProductSummary]="allProductSummary" ></product-empty>
и функции, которая имеет важное значение в этом случае:
private displayArry: string[] = [];
getForecastDisplay(emit: any) {
if (emit.show) {
var index = this.displayArry.indexOf(emit.id);
if (index === -1) {
this.displayArry.push(emit.id);
} else { }
} else {
var index = this.displayArry.indexOf(emit.id);
this.displayArry.splice(index, 1);
}
this.forecastShows = emit;
console.log('forecast show', this.displayArry);
}
и ребенка компонента куске:
export class FlexProductEmptyComponent implements DoCheck, OnInit, OnChanges {
...
@Input() showHistoryMonth: boolean = false;
@Input() showHistoryAvg: boolean = false;
@Input() forecastShows: any;
...
Так вопрос в том, как данные передаются через родительский и дочерний. Сейчас я пытаюсь обнаружить родительские изменения в дочернем. EDIT: функция getForecastDisplay вызывается, когда другой компонент испускает данные и обновляет displayArry. Так что, как я думаю, когда переменная displayArry изменяется, она снова передается всем дочерним элементам, привязанным к родительскому объекту.
Я имею в виду, что я пытаюсь поймать тот момент, когда родительские данные изменились и передать его ребенку. Я использовал сеттер, и когда я установил в него консольный журнал, он только логгирует на init. Я использовал OnChanges с простым изменением и зарегистрировался только при запуске компонента; Но данные, когда они меняются, передаются дочернему компоненту (я знаю это, потому что я устанавливаю консольный журнал в doCheck и его показываю правильное значение).
Итак, главный вопрос заключается в том, как я могу поймать тот момент, когда родительский компонент передает данные в дочерние?
Я попробую и даю обратную связь :) –