gpt4 book ai didi

javascript - angular2中的 typescript ,如何通过这个访问类变量

转载 作者:行者123 更新时间:2023-11-30 08:28:27 26 4
gpt4 key购买 nike

鉴于此代码,我如何访问对象“ session ”?由于“this”为空而失败:

/// <reference path="chrome/chrome-app.d.ts" />

import { Component, Input, OnInit } from '@angular/core';
import { AppService } from './app.service';

@Component({
selector: 'tabs',
templateUrl: './templates/app.html',
providers: [ AppService ]
})

export class AppComponent implements OnInit {
public sessions : Object;
constructor( private appService : AppService ) {}

getBookmarkLists() {
console.log(this.sessions) // it gives undefined
this.sessions['test'] = 'yea'; // it fails
this.appService.getBookmarks().then(function(bookmarks : any) {
console.log(this.sessions) // it fails
});

}

ngOnInit() {
this.getBookmarkLists();
}
}

我希望能够访问变量并填充它。

最佳答案

你没有在任何地方初始化这个Sessions对象,据我所知应该是:

export class AppComponent implements OnInit {
public sessions: Session[] = []; // You forgot here to initialize it
constructor( private appService : AppService ) {}

getBookmarkLists() {
console.log(this.sessions) // no it shouldn't give undefined
this.sessions['test'] = 'yea'; // and this shouldn't fail
this.appService.getBookmarks().then((bookmarks : any) => {
// this should be an arrow function or function bound to use it
// otherwise this will point to the function itself.
console.log(this.sessions) // it shouldn't fail
});

}

ngOnInit() {
this.getBookmarkLists();
}
}

sessions = []; 是关键部分。因此,这不仅仅是 this 的问题,它在方法中按应有的方式引用了类实例。

传递给 then 的回调函数应该是箭头函数而不是 classic 函数,以保持 this 对类实例的引用。

关于javascript - angular2中的 typescript ,如何通过这个访问类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41516948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com