2015-11-03 95 views
4

我正在使用jquery kendo ui网格,并从该编辑按钮中尝试调用angular2方法。我的设置很简单:从javascript函数调用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 
    }); 
} 
} 

它的工作代码的唯一问题是这样的。我可以只是说

click:this.edit 

click: function() { 
     UserComponent.prototype.edit() 
     }); 

但在这两种情况下,该方法不是从当前实例调用angular2方法。所以在这种情况下,我不能使用HTTP服务或内部编辑

+0

所有角方法*是*的JavaScript,所以你的问题标题甚至没有意义。 – Claies

+0

是的所有的角度方法javascrupt但我的标题“angular2 **方法**”这个我的意思是一个实例的方法。因为如果你只是调用this.edit它不会执行当前实例的方法。 – Navin

回答

7

任何局部变量或方法的尝试是这样的

click: function() { 
    this.edit(); 
}).bind(this); 

var self = this; 
$("#grid").kendoGrid({ 

    click: function() { 
    self.edit(); 
    }); 
+0

给我一个机会,我会吻你..谢谢你.. – Navin

+0

大声笑..我不会但谢谢反正! – niravpatel9898