0

當我的承諾通過關閉或取消Angular/Typescript中的模式返回時,我遇到了調用單獨函數的問題。也許我正在嘗試做一些不可能的事情,但是我所見過的所有例子都將返回的數據記錄回控制檯或變量,或者拋出一個警報。像這樣:Typescript/Angular - 在模態結果返回後調用單獨的函數

modalInstance.result.then(function (result) { 
    console.log(result); 
}); 

什麼我希望做的是調用單獨功能一旦結果返回,如:

modalInstance.result.then(function (result) { 
    console.log(result); 
    this.EditWidget(result); 
}); 

但是,這並不工作,我不能似乎找出原因。我嘗試了一切,我想我只是錯過了這個承諾如何在這裏工作。

任何想法?

+0

我看不出有什麼錯你的代碼已經發布。是什麼讓你覺得錯誤在那裏?該功能是否在承諾之外工作?你能提供更多的代碼來展示你在做什麼嗎? –

回答

1

我的精髓是this是不是你所期望的。您需要捕獲的這個值,並在回調使用捕捉值:

var that = this; 
modalInstance.result.then(function (result) { 
    console.log(result); 
    that.EditWidget(result); 
}); 

或功能綁定到這個:

var callback = function (result) { 
    console.log(result); 
    this.EditWidget(result); 
}; 

modalInstance.result.then(callback.bind(this)); 
+0

太棒了!非常感謝! – gibbypoo