局部变量未定义的外部方法

海森堡

我有一个submitAdd()从另一个方法获取价值的方法polygonDrawer(),问题是我从undefinedsubmitAdd()方法获取价值这似乎是一个问题。

polygonDrawer()

polygonDrawer()
{
var i;
var map;
var cords = [];
 google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {

            field.setPath(polygon.getPath().getArray());
            field.setMap(map);

            for (var i = 0; i < field.getPath().getLength(); i++) {
                cords.push(field.getPath().getAt(i).toUrlValue(6));
                text += field.getPath().getAt(i).toUrlValue(6) + "#";
            }                
            this.pointSTR2=text.slice(0, -1);
         });
}

SubmitAdd()

pointSTR2:any;

submitAdd() {
    console.log("**"+this.pointSTR2); // undefined

}
Vivek Doshi

问题与范围有关,您可以通过2种方法解决此问题:


1)使用胖箭头

function (polygon) {(polygon) => {

喜欢 :

polygonDrawer()
{
    ...
    google.maps.event.addListener(drawingManager, 'polygoncomplete', (polygon) => {
        ....
        this.pointSTR2=text.slice(0, -1);
    });
}

2)使用方法.bind()

polygonDrawer()
{
    ...
    google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon){
        ....
        this.pointSTR2=text.slice(0, -1);
    }).bind(this);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章