1

我有一个类型脚本类,它接受一个 url(字符串)作为构造函数中的参数。在类中,我有另一个类,它是 devextreme 数据网格的视图模型。我面临的问题是我不知道如何访问内部对象(GridViewModel)中的 url 属性,该对象具有作为其中一部分的功能。

export class MyClassOne {
    private myUrl: string;

    constructor(url: string) {
        this.myUrl = url;
    }

    public GridViewModel = {
        dataGridOptions: {
            dataSource : { store: someSource}
                   ...
            aFunction:  function(e){

                // this.myUrl is undefined
                var postUrl =  this.myUrl;               
            }             
        }
    }
}  
var myClassOne = new MyClassOne("https://www.google.com"); 

我的问题是,如何在内部对象函数中访问“this.myUrl”?请帮忙

谢谢,

4

2 回答 2

2

'this'的范围在函数内部发生了变化。你可以创建一个保留范围的箭头函数,或者使用一个self 变量来保存外部范围。

例如带有箭头运算符的函数。您的功能可以替换为

e => {
var postUrl =  this.myUrl;              
}
于 2018-05-31T19:33:04.370 回答
0

所以,基本上我需要用 e=> 替换 function(e) 以保留“this”的范围

export class MyClassOne {
    private myUrl: string;

    constructor(url: string) {
        this.myUrl = url;
    }

    public GridViewModel = {
        dataGridOptions: {
            dataSource : { store: someSource}
                   ...
            aFunction:  e => {

                // this.myUrl is undefined
                var postUrl =  this.myUrl;               
            }             
        }
    }
}

var myClassOne = new MyClassOne("https://www.google.com"); 
于 2018-05-31T20:02:32.520 回答