根据https://angular-ui.github.io/bootstrap/#/modal,我想将模态的结果传递给父级而不关闭,但在示例代码中,它们只显示通过结束传递给父级的结果
$uibModalInstance.close($scope.selected.item);
我想在点击项目时将数据传递给父级,但我不知道这样做。我真的需要帮助。感谢。
答案 0 :(得分:3)
这是关于控制器之间通信的一个非常常见的问题,因为您不想关闭模型并希望将数据传递给其他控制器。
问题的最快捷途径是使用$broadcast
。在模态的控制器中,写如下:
// Make sure to use $rootScope
$rootScope.$broadcast("modalDataEventFoo", {selectedItem: $scope.selected.item});
现在,在您的父控制器中:
$scope.$on("modalDataEventFoo", function(event, data) {
console.log("got the data from modal", data.selectedItem);
});
控制器之间通信的其他参考:
答案 1 :(得分:1)
另一种方法是在父控制器和模式控制器之间共享范围,在选项中声明scope
属性:
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
scope: $scope,
resolve: {
items: function () {
return $scope.items;
}
}
});
检查此plunker,其中模态包含绑定到变量$scope.shared.name
的输入元素:
http://plnkr.co/edit/4xiEXATxAnvDKBSXxzQd