相关疑难解决方法(0)

Angular2更改检测:ngOnChanges未针对嵌套对象触发

我知道我不是第一个问这个的人,但我在前面的问题中找不到答案.我有一个组件

<div class="col-sm-5">
    <laps
        [lapsData]="rawLapsData"
        [selectedTps]="selectedTps"
        (lapsHandler)="lapsHandler($event)">
    </laps>
</div>

<map
    [lapsData]="rawLapsData"
    class="col-sm-7">
</map>
Run Code Online (Sandbox Code Playgroud)

在控制器中rawLapsdata不时变异.

laps,数据以表格格式输出为HTML.每当rawLapsdata发生变化时,这都

我的map组件需要ngOnChanges用作在Google地图上重绘标记的触发器.问题是当rawLapsData父项中的更改时,ngOnChanges不会触发.我能做什么?

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();
    }
Run Code Online (Sandbox Code Playgroud)

更新: ngOnChanges不起作用,但看起来好像正在更新lapsData.在ngInit中,还有一个用于缩放更改的事件侦听器,它也会调用this.drawmarkers.当我改变变焦时,我确实看到了标记的变化.所以唯一的问题是我在输入数据发生变化时没有收到通知.

在父母,我有这条线.(回想一下,变化反映在圈数中,但不反映在地图中). …

angular

110
推荐指数
8
解决办法
11万
查看次数

标签 统计

angular ×1