gpt4 book ai didi

javascript - Vue + 传单 : Can't call method inside Vue object

转载 作者:行者123 更新时间:2023-12-03 06:44:09 25 4
gpt4 key购买 nike

我正在使用 Vue 和 Leaflet 在 map 上显示多边形(区域)。此外,我希望使用 polygon.on 函数在 map 上单击特定多边形后显示有关特定多边形的适当信息(消息)。但此时我似乎无法调用 getMessages 函数,我总是收到消息“无法读取未定义的属性'call'”。有人知道我如何才能完成这项工作吗?

var map = new Vue ({
el: '#messagearea',
data: {
function() {
return {
map: false
};
},
zones: [],
messages:[],
},
ready: function() {
this.map = L.map('map').setView([51.959, 7.623], 14);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(this.map);
this.$http.get('/api/zones', function(data) {
this.$set('zones', data);
for (var i = 0; i < this.zones['Zones'].length; i++) {
polygon = L.polygon(
this.zones['Zones'][i]['Geometry']['Coordinates']).addTo(this.map);
polygon.bindPopup(this.zones['Zones'][i]['Name']);
polygon.on('click', this.getMessages(this.zones['Zones'][i]['Zone-id']));
}
});
},
methods:
{
getMessages: function(id) {
this.$http.get('/api/messages?zone='+id, function(data) {
this.$set('messages', data['Messages']);
});
}
}
})

最佳答案

您混淆了函数引用和函数调用的概念。阅读 Leaflet marker event fires at wrong time - 即使问题和设置不同,解决方案也是相同的。

关于javascript - Vue + 传单 : Can't call method inside Vue object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com