我有以下代码
let myMax items =
match items with
| [] -> failwith "no data"
| head :: tail ->
let rec recMax maxSoFar items =
match items with
| [] -> maxSoFar
| head :: tail ->
if head > maxSoFar then
recMax head tail
else
recMax maxSoFar tail
recMax head tail
export class AppComponent implements OnInit {
public guests: any[] = [];
constructor(private apiService: ApiService) {
}
ngOnInit(): void {
this.apiService.getAllGuestsQuery().find({
success(results) {
for (let i = 0; i < results.length; i++) {
const object = results[i];
console.log(object.get('companyName'));
}
},
error(error) {
console.log("Error: " + error.code + " " + error.message);
}
});
}
}
会返回getAllGuestsQuery
个对象。我想将结果存储在我的来宾数组中。例如。做Parse.Query
之类的事情
但是我无法在success方法中访问this.guests类变量。
我该怎么做?
答案 0 :(得分:1)
export class AppComponent implements OnInit {
public guests: any[] = [];
constructor(private apiService: ApiService) {
}
ngOnInit(): void {
let vm = this;
this.apiService.getAllGuestsQuery().find({
func(r){ vm.guests } // will be available
});
}
}
这是因为当您将{}构造传递给find()函数时,会在那里创建一个新的作用域。如果您使用ES6箭头语法,您可以做得更好(但我写的麻烦,你必须以完全不同的方式处理错误,最好是承诺)
答案 1 :(得分:0)
您可以尝试在this
方法的开头,在单独的变量中传递对ngOnInit()
的引用。像let that = this;
这样的东西。稍后在回调中通过this
参考that
(班级实例)。