我怎样才能让变量被设置为显示方法之外的东西?
How can I get the variable to be set to show something outside the method?
朋友们大家好。
我在vue的数据中设置了一个变量:
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);
}
}
朋友们大家好。
我在vue的数据中设置了一个变量:
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);
}
}