2017-10-05 26 views
0

更新我有一個成員:值不會在瀏覽器中

airline = 'string'; 

而且在我的模板,我有:

<p>{{airline}}</p> 

顯然,這顯示了在瀏覽器string

我有一個函數:

setValue(selectionChangedEvent) { 
    this.airline = selectionChangedEvent.selectionChanges[0].selected[0].properties.airline; 
    console.log(this.airline); 
} 

此功能從名爲:

this._map.on('SelectionChanged', function (selectionChangedEvent) { 
    if (selectionChangedEvent.selectionChanges.length > 0) { 
    var c = new MapComponent(); 
    c.setValue(selectionChangedEvent); 
    } else { 

    } 
}); 

當我運行的代碼,我看到的this.airline中的setValue函數值,但該值在瀏覽器中仍然是string

爲什麼它不在瀏覽器中更新?

+0

所有的功能都在同一個組件中嗎? – Moema

回答

1

的問題是,你正在創建一個新的組件與

var c = new MapComponent(); 

所以你的原始值永遠不會被更新。你可能想使用

this.setValue(selectionChangedEvent); 

代替,但爲此你也必須改變以lambda函數

this._map.on('SelectionChanged', (selectionChangedEvent) => { 

否則this.setValue將不存在救的背景下,因爲你是在錯誤的上下文。

+0

哦,當然。我創建了一個新組件,但從未傳遞過這個值。我不確定lambda函數是什麼,在Java中看過它,但沒有真正使用它。但是你的建議修正了代碼。乾杯。 –