2015-11-03 59 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