Я знаю, что я не первый, кто спрашивает об этом, но я не могу найти ответ в предыдущих вопросах. У меня это в одном компоненте
<div class="col-sm-5">
    <laps
        [lapsData]="rawLapsData"
        [selectedTps]="selectedTps"
        (lapsHandler)="lapsHandler($event)">
    </laps>
</div>
<map
    [lapsData]="rawLapsData"
    class="col-sm-7">
</map>
В контроллере rawLapsdata время от времени мутируется.
В laps данные выводятся как HTML в табличном формате. Это изменяется при изменении rawLapsdata.
Мой компонент map должен использовать ngOnChanges в качестве триггера для перерисовки маркеров на карте Google. Проблема в том, что ngOnChanges не срабатывает, когда rawLapsdata изменяется в родительском. Что я могу сделать?
import {Component, Input, OnInit, OnChanges, SimpleChange} from 'angular2/core';
@Component({
    selector: 'map',
    templateUrl: './components/edMap/edMap.html',
    styleUrls: ['./components/edMap/edMap.css']
})
export class MapCmp implements OnInit, OnChanges {
    @Input() lapsData: any;
    map: google.maps.Map;
    ngOnInit() {
        ...
    }
    ngOnChanges(changes: { [propName: string]: SimpleChange }) {
        console.log('ngOnChanges = ', changes['lapsData']);
        if (this.map) this.drawMarkers();
    }
  Обновление: ngOnChanges не работает, но похоже, что lapsData обновляется. В ngInit есть прослушиватель событий для изменения масштаба, который также вызывает this.drawmarkers. Когда я меняю масштаб, я действительно вижу изменение маркеров. Поэтому единственная проблема заключается в том, что я не получаю уведомление во время изменения входных данных.
В родительском я имею эту строку. (Напомним, что изменение отражается в кругах, но не на карте).
this.rawLapsData = deletePoints(this.rawLapsData, this.selectedTps);
И обратите внимание, что this.rawLapsData сам является указателем на середину большого json-объекта
this.rawLapsData = this.main.data.TrainingCenterDatabase.Activities[0].Activity[0].Lap;
