从 javascript 函数调用 angular2 方法
Call angular2 method from javascript function
我正在使用 jquery kendo ui 网格,我正在尝试从该编辑按钮调用 angular2 方法。我的设置很简单:
export class UserComponent implements OnInit {
constructor( @Inject(UserService) public userService: UserService, @Inject(FormBuilder) public fb: FormBuilder) {
...
}
edit():void{ }
onInit() {
$("#grid").kendoGrid({
....
click: function () {
// Call angular2 method of the current instance
});
}
}
这是工作代码,唯一的问题是这个。我可以通过声明
来调用 angular2 方法
click:this.edit
或
click: function () {
UserComponent.prototype.edit()
});
但在这两种情况下,方法都不是来自当前实例。所以在这种情况下,我不能使用 http 服务或 edit
中的任何局部变量或方法
尝试这样的事情
click: function () {
this.edit();
}).bind(this);
或
var self = this;
$("#grid").kendoGrid({
click: function () {
self.edit();
});
我正在使用 jquery kendo ui 网格,我正在尝试从该编辑按钮调用 angular2 方法。我的设置很简单:
export class UserComponent implements OnInit {
constructor( @Inject(UserService) public userService: UserService, @Inject(FormBuilder) public fb: FormBuilder) {
...
}
edit():void{ }
onInit() {
$("#grid").kendoGrid({
....
click: function () {
// Call angular2 method of the current instance
});
}
}
这是工作代码,唯一的问题是这个。我可以通过声明
来调用 angular2 方法 click:this.edit
或
click: function () {
UserComponent.prototype.edit()
});
但在这两种情况下,方法都不是来自当前实例。所以在这种情况下,我不能使用 http 服务或 edit
中的任何局部变量或方法尝试这样的事情
click: function () {
this.edit();
}).bind(this);
或
var self = this;
$("#grid").kendoGrid({
click: function () {
self.edit();
});