使用 modalInstance.result.then() AngularJS 执行父控制器方法

Execute parent controller method using modalInstance.result.then() AngularJS

一旦模态框的 "okay" 按钮被按下,我正在尝试 运行 class 方法(在创建我的 $uibModal 的控制器中)。我的理解是 modalInstance 从组件返回模态对象,这就是我的问题......我如何与父控制器而不是组件交互?

示例:

modalInstance.result.then(function () {
      // if close() called in component, do this in the parent controller
      this.users.splice(this.users.indexOf(user), 1);    
   }, function () {
      // if dissmised, do this
      console.log('modal-component dismissed at: ' + new Date());
});

这会引发错误:

TypeError: Cannot read property 'users' of undefined

这是一个包含关键项目的 Plunker: https://plnkr.co/edit/ZY3Kr9g3MuT1AxsQKfsj?p=catalogue

AngularJS 1.6,使用 Angular Fullstack Generator 4.2.3

我已按照此文档:https://angular-ui.github.io/bootstrap/ 创建模态组件并且模态效果很好。但是无论我尝试什么,我都无法拼接我的用户数组。请帮忙!

可能是因为在回调中错误地绑定了 this,请尝试使用 => 将其显式绑定到父封闭范围:

modalInstance.result.then(() => {
      // if close() called in component, do this in the parent controller
      this.users.splice(this.users.indexOf(user), 1);    
   }, function () {
      // if dissmised, do this
      console.log('modal-component dismissed at: ' + new Date());
});