我有一名成员:
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 {
}
});
当我运行代码时,我确实在setValue函数中看到this.airline
的值,但浏览器中的值仍为string
。
为什么不在浏览器中更新?
答案 0 :(得分:1)
问题是您正在使用
创建新组件var c = new MapComponent();
因此您的原始值永远不会更新。你可能想用
this.setValue(selectionChangedEvent);
相反,但是你也必须通过改变为lambda函数来保存上下文
this._map.on('SelectionChanged', (selectionChangedEvent) => {
否则this.setValue不会存在,因为你处于错误的上下文中。