Всем доброго времени суток. Подскажите пожалуйста как правильно связать двусторонней связью переменные из разных компонентов? как я пытался сделать:
есть компонент datetimepicker, он хранит в себе выбранную дату
Далее есть компонент, в котором необходимо брать диапазон дат и выводить данные в этом диапазоне
В шаблоне компонента CountRankComponent связываю переменные
И в общем, связывание не работает, переменная moment в датапикере инициализируется передаваемым значением из родительского компонента, при изменении даты через пике, в логах вижу что событие на изменение срабатывает, но переменные в родительском компоненте(startDate, endDate) не изменяются. Вопрос - что я делаю не так? Подскажите пожалуйста
есть компонент datetimepicker, он хранит в себе выбранную дату
:
@Component({
moduleId: module.id,
selector: "date-time-picker",
template: `
<p-calendar [(ngModel)]="moment" (ngModelChange)="onChange($event)" showTime="showTime" hourFormat="24"></p-calendar>
`
})
export class DateTimePickerComponent {
@Output() change: EventEmitter<Date> = new EventEmitter();
@Input() moment: Date = new Date();
onChange(selectedDate: Date) {
console.log("change date - " + this.moment);
this.change.emit(selectedDate);
}
}
:
@Component({
moduleId: module.id,
selector: "count-rank",
templateUrl: "count-rank.component.html"
})
export class CountRankComponent implements OnInit {
public startDate: Date;
public endDate: Date;
//....
}
:
<date-time-picker [(moment)]="startDate"></date-time-picker>
<date-time-picker [(moment)]="endDate"></date-time-picker>
<p>startDate: {{startDate}}</p>
<p>endDate: {{endDate}}</p>