如何将结果从angular-ui-bootstrap的模态传递给父而不关闭?

Hik*_*ndo 5 angularjs angular-ui-bootstrap

根据https://angular-ui.github.io/bootstrap/#/modal,我想将modal的结果传递给父节点而不关闭,但在示例代码中,它们只显示通过关闭传递给父节点的结果

$uibModalInstance.close($scope.selected.item);
Run Code Online (Sandbox Code Playgroud)

我想在点击项目时将数据传递给父项,但我不知道这样做.我真的需要帮助.谢谢.

Sha*_*wal 3

这是控制器之间通信的一个非常常见的问题,因为您不想关闭模型并希望将数据传递到不同的控制器。

解决问题的最快途径是使用$broadcast. 在模态的控制器中,这样写:

// Make sure to use $rootScope
$rootScope.$broadcast("modalDataEventFoo", {selectedItem: $scope.selected.item});
Run Code Online (Sandbox Code Playgroud)

现在,在您的父控制器中:

$scope.$on("modalDataEventFoo", function(event, data) {
     console.log("got the data from modal", data.selectedItem);
});
Run Code Online (Sandbox Code Playgroud)

控制器之间通信的其他参考:

  1. AngularJS 中控制器之间通信的正确方法是什么?
  2. https://egghead.io/lessons/angularjs-sharing-data- Between-controllers
  3. http://www.angulartutorial.net/2014/03/communicate-with-controllers-in-angular.html
  4. Angular 中控制器之间的通信