如何从typescript类访问此属性?

时间:2018-03-28 02:58:40

标签: javascript jquery angular typescript this

我已经搜索过这个,似乎没有什么对我有用。我看到了我可以使用的地方var self = this;我尝试了但是当我打印self的值时,它表示未定义。我不确定打字稿是否会有所不同。我知道它在引擎盖下转换为Javascript。我正在使用Typescript 2.6版本。

这是我的AppComponent代码。

import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
import $ from "jquery";

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})

export class AppComponent implements OnInit {
  name = 'Angular 5';


  constructor() { 

  }

  ngOnInit() {
    $("#file").change(this.loadFile)
  }
  loadFile(e)
  { 
    var self = $(this)
    console.log(" Name -> " + this.name)
    console.log(" This variable " + self.name)
    var file = new FileReader();
  }

}

为什么没有定义this.name?我知道loadFile是一个回调函数,但我希望能够在这个函数中访问我的类变量。 上传任何文件后,将触发loadFile(e)功能。

该项目的链接是 Click Here

1 个答案:

答案 0 :(得分:2)

jQuery使用不同的root.title("SQL2Excel") root.geometry("500x500") r = root r.geometry("250x150") 触发change处理函数(在您的情况下为loadFile)。

您有两种选择:

虽然,我建议你完全抛弃jQuery并使用Angular来监听事件,例如。

ngOnInit() {
  $("#file").change(this.loadFile.bind(this))
}