我有一個父組件,其中包含一個顯示地圖中的地方數組的子組件。要顯示的位置將加載到父組件中。我有這個在我父模板:Angualr2 RC4子組件屬性setter未執行
<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();
}
}
如果我打開我的父組件設置的地方屬性被激發的地方等於未定義。然後啓動加載數據並在父組件中設置屬性的myfunction,但父項屬性不更新。 我做錯了什麼?
UPDATE 這裏是我的plunker http://plnkr.co/edit/MROuH8znbDxTm0HKFG0Q
如果我使用self.mapConfigChanged.emit();在Google地圖事件列表工具之外。但我需要地圖上的一些數據,所以我必須使用這個事件
能告訴你的子組件的模板?如果在父組件的構造函數中設置'places'數組,則子組件會正確顯示元素?子組件模板中的 –
並不是關於places數組的任何內容。子組件中的placesChanged事件在子組件的谷歌地圖中加載一些標記 – cpiock
不將加載位置代碼放入構造函數中不會更改。數據在執行點擊按鈕後加載顯示並隱藏父組件中的元素 – cpiock