如何不使用`this`来访问Angular类变量?

时间:2018-12-18 19:06:05

标签: javascript angular typescript

有什么方法可以使用MyVariable类中的变量StartPage而不使用this.吗?我问的原因是我需要在函数中引用它,而this在这里不起作用。我从here知道我可以使用=> {...,但这并不总是对我有用。我该怎么办?

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-start',
  templateUrl: './start.page.html',
  styleUrls: ['./start.page.scss'],
})
export class StartPage implements OnInit {

  constructor() {}

  MyVariable = "Value";

  ngOnInit() {
   console.log(MyVariable); 
   //anyway to use MyVariable without `this.` prefix?
  }

}

1 个答案:

答案 0 :(得分:3)

I need to reference this in a function, and this does not work

我认为这是因为您尝试从回调函数(订阅,setTimeout或类似函数)进行访问,并且未在上下文中定义。为了可以将此作为StartPage类的引用进行访问,必须将对此的引用绑定到该函数,例如:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-start',
  templateUrl: './start.page.html',
  styleUrls: ['./start.page.scss'],
})
export class StartPage implements OnInit {

  constructor() {}

  MyVariable = "Value";

  ngOnInit() {
     this.myFunction().bind(this);
  }

  myFunction(){
     // ...
     this.MyVariable = someValue
     // ...
  }

}