マップの場所の配列を表示する子コンポーネントを含む親コンポーネントがあります。表示する場所は親コンポーネントにロードされます。私は私の親テンプレートでこれを持っている:Angualr2 RC4子コンポーネントのプロパティーセッターが実行されていません
<map-comp class="container-map" [places]="places"></map-comp>
私はこのwhayに私の場所をロード:
myservice.myfunction(myparameters).subscribe((res: Array<Place>) => {
this.places = res
});
私はこの性質を持っている私の子コンポーネントで:
@Input() set places(places: Array<Place>) {
this._places = places;
if (this._places != null) {
this.placesChanged();
}
}
私は私をロードする場合親コンポーネントset placesプロパティは、未定義の場所で実行されます。次に、データをロードして親コンポーネントのプロパティを設定するmyfunctionを開始しますが、子の親プロパティは更新されません。 私は間違っていますか?私はself.mapConfigChanged.emitを使用する場合はここでUPDATE
は私plunker http://plnkr.co/edit/MROuH8znbDxTm0HKFG0Q
です(); googleマップイベントリスナーの外で動作します。しかし、マップからデータが必要なので、このイベントを使用する必要があります
あなたは子コンポーネントのテンプレートを示してもらえますか?親コンポーネントのコンストラクタに 'places'配列を設定すると、子コンポーネントは要素を正しく表示しますか?子コンポーネントテンプレート内の –
は、places配列に関して何もありません。チャイルド内のplacesChangedイベントは、子コンポーネントのgoogleマップにいくつかのマーカーをロードします。 – cpiock
コンストラクターにロード・プレース・コードを入れても変更されません。データは、ボタンのクリックを実行した後にロードされ、親コンポーネントの要素を表示して非表示にします。 – cpiock