我已经搜索过这个,似乎没有什么对我有用。我看到了我可以使用的地方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
答案 0 :(得分:2)
jQuery使用不同的root.title("SQL2Excel")
root.geometry("500x500")
r = root
r.geometry("250x150")
触发change
处理函数(在您的情况下为loadFile
)。
您有两种选择:
this
使用.bind()
:
ngOnInit() {
$("#file").change((e) => this.loadFile(e))
}
虽然,我建议你完全抛弃jQuery并使用Angular来监听事件,例如。
ngOnInit() {
$("#file").change(this.loadFile.bind(this))
}