【问题标题】:Execute function when modal is closed (Plunker attached)模态关闭时执行功能(附加Plunker)
【发布时间】:2016-07-26 22:17:02
【问题描述】:

我有一个无法修复的小错误。这是plunker-> http://plnkr.co/edit/D3EjXKf48Sq2vuc5MHNx?p=preview

当用户打开模态并进行选择时,他选择通过按“确定”关闭模态

此时,我想执行控制器中提到的 ExecOnModalClose() 函数。

所以,这是我尝试过的代码。

$scope.ok = function() {
    $uibModalInstance.close();
    $scope.ExecOnModalClose();
};

如上图所示,当用户按下“Ok”时执行下面的这个函数。

$scope.ExecOnModalClose = function() {
     console.log("Execute this after modal closes on pressing Ok"); 
}

谁能告诉我如何将这两者联系起来。

【问题讨论】:

  • 我刚刚添加了你说你尝试过的确切代码和it works perfectly.
  • 严重 >?当我点击时,我在控制台日志中看不到任何内容
  • 是的。打开我的链接,按 F12(或 Opt+Cmd+I,如果您在 Mac 上)并打开模式。单击“确定”,控制台中出现“在模态关闭后按确定执行此操作”。
  • @MikeC- 我真傻。 Tat 函数位于模态控制器本身内部。更新了 plunker

标签: javascript jquery angularjs twitter-bootstrap modal-dialog


【解决方案1】:

你可以使用

<button class="btn btn-primary" type="button" ng-click="ok(); ExecOnModalClose()">OK</button>

编辑

更改原始 plunker 后,使用广播似乎是可行的解决方案: http://plnkr.co/edit/0ZrOM2au5wErWfUtX4v4?p=preview

【讨论】:

  • @Zdnek- 我试过这个。不工作。你能带我看看吗>?
  • 它并不像看起来那么容易。 ok() 函数在模态内部,添加 ExecOnModalClose() 函数将不起作用,因为第二个函数在模态控制器外部。
  • 是的,对不起。我指的是老笨蛋。这是工作中的 plunker:plnkr.co/edit/0ZrOM2au5wErWfUtX4v4?p=preview 使用事件广播。
  • 嗨@Zdenek-这是一个很好的答案。除非您编辑答案,否则我无法以某种方式对此表示赞同。你能编辑它吗?我可以投票给你的答案
  • 跟广播一起传就好了。如此处所示stackoverflow.com/questions/17779745/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2022-01-21
  • 2023-04-04
相关资源
最近更新 更多