我有一个应用程序使用angular-ui bootstrap模式(http://angular-ui.github.io/bootstrap/#/modal)从列表中搜索并选择一行。
通常使用angular-ui bootstrap模态,我们必须创建两个控制器(例如ModalDemoCtrl用于主模态,ModalInstanceCtrl用于模态窗口)。
在第二个控制器中,我们有两种方法:
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
在几个地方重复(当我创建几个搜索模式时)。
如何创建一个包含这两个控制器的指令(或服务),并在其中创建这两个方法。
答案 0 :(得分:1)
你错了 - 模态窗口有一个控制器。第二个是主页面,与模态无关。因此,如果你想在页面上有10个按钮来打开10种不同的模态,那么你将拥有11个控制器。
对于只显示消息或要求确认操作的模态,最好有服务,所以你可以写Myservice.showModal('你确定吗?',函数callbackafterok(){... })。
如果你不喜欢重复$ modalInstance.close - 为带有ng-click绑定的按钮制作简单指令,写一下:
<button closeModalWithData="" >Ok</cancel>
或者只是
<modalOk/>
使用模板<button ng-click="ok()">Ok</button>
...
答案 1 :(得分:0)
.directive('closeModal', function() {
return {
restrict: 'E',
template: '<button ng-click="$close()">Cancel</button>'
};
})