Typescript / Angular - 在模态结果返回后调用单独的函数

时间:2016-11-04 20:43:48

标签: angularjs typescript bootstrap-modal angular-promise angular-bootstrap

当我通过关闭或取消Angular / Typescript中的模态返回我的承诺时,我遇到了调用单独函数的问题。也许我试图做一些不可能的事情,但我所看到的所有例子都将返回的数据记录回控制台或变量或者发出警报。像这样:

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

我希望做的是在返回结果后调用单独的函数,例如:

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

但这不起作用,我似乎无法弄清楚原因。我已经尝试了所有的事情,我想我只是错过了一些关于诺言如何在这里发挥作用的事情。

有什么想法吗?

1 个答案:

答案 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));