Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 514783

Angular 2, двустороняя привязка переменных между компонентами - AngularJS

$
0
0
Всем доброго времени суток. Подскажите пожалуйста как правильно связать двусторонней связью переменные из разных компонентов? как я пытался сделать:

есть компонент 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;

    //....
}

В шаблоне компонента CountRankComponent связываю переменные
:

<date-time-picker [(moment)]="startDate"></date-time-picker>
<date-time-picker [(moment)]="endDate"></date-time-picker>
<p>startDate: {{startDate}}</p>
<p>endDate: {{endDate}}</p>

И в общем, связывание не работает, переменная moment в датапикере инициализируется передаваемым значением из родительского компонента, при изменении даты через пике, в логах вижу что событие на изменение срабатывает, но переменные в родительском компоненте(startDate, endDate) не изменяются. Вопрос - что я делаю не так? Подскажите пожалуйста

Viewing all articles
Browse latest Browse all 514783

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>