Javascript 如何设置变量以显示方法之外的内容?
朋友们,你好 我在vue的数据中得到了一个变量集:Javascript 如何设置变量以显示方法之外的内容?,javascript,vue.js,openlayers,Javascript,Vue.js,Openlayers,朋友们,你好 我在vue的数据中得到了一个变量集: var comp= { data() { return{ polygonString:"" } } } 现在,当我想在“modifyend”方法内部设置“polygonString”时,在该方法外部执行console.log()时,它将保持空白: methods:{ addCoordinate(){ modify.o
var comp=
{
data()
{
return{
polygonString:""
}
}
}
现在,当我想在“modifyend”方法内部设置“polygonString”时,在该方法外部执行console.log()时,它将保持空白:
methods:{
addCoordinate(){
modify.on('modifyend', function (evt) {
var flat_coords;
var modified_coords = [];
evt.features.forEach(function (feature) {
flat_coords = feature.getGeometry().getCoordinates();
for (var i in flat_coords)
{
var flat_coord = flat_coords[i];
for(var coord_array in flat_coord)
{
var lat_lng = flat_coord[coord_array];
var transformed_coords = ol.proj.transform(lat_lng,'EPSG:3857','EPSG:4326');
modified_coords.push(transformed_coords.toString().replace(",", " "));
}
}
});
this.polygonString = modified_coords.toString().replaceAll(",", ", ");
});
console.log("POLYGON STRING", this.polygonString);
}
}
在方法中注册
modifyend
事件侦听器似乎会有问题。您可能应该将注册逻辑移动到其中一个生命周期挂钩,mounted
或created
尝试进行以下更改:
mounted() {
modify.on('modifyend', this.addCoordinate);
},
methods: {
addCoordinate(evt) {
var flat_coords;
var modified_coords = [];
evt.features.forEach(function(feature) {
flat_coords = feature.getGeometry().getCoordinates();
for (var i in flat_coords) {
var flat_coord = flat_coords[i];
for (var coord_array in flat_coord) {
var lat_lng = flat_coord[coord_array];
var transformed_coords = ol.proj.transform(lat_lng, 'EPSG:3857', 'EPSG:4326');
modified_coords.push(transformed_coords.toString().replace(",", " "));
}
}
});
this.polygonString = modified_coords.toString().replaceAll(",", ", ");
console.log("POLYGON STRING", this.polygonString);
}
}