我有一个类型脚本类,它接受一个url(string)作为构造函数中的参数。在类中,我有另一个类,它是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”?请帮忙
谢谢,
答案 0 :(得分:2)
'this'的范围已在函数内部发生变化。您可以创建一个箭头函数来保留范围或使用自变量强>保持外部范围。
例如带箭头操作符的函数。您的功能可以替换为
e => {
var postUrl = this.myUrl;
}
答案 1 :(得分:0)
所以,基本上我需要用e =>替换函数(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");