Angularjs 利用 $modal 实现 confirm 弹窗
来源:互联网 发布:厦门天心软件 编辑:程序博客网 时间:2024/06/05 01:59
先介绍$modal,$modal只有一个方法:open,该方法的属性有:
- templateUrl:模态窗口的地址
- template:用于显示html标签
- scope:一个作用域为模态的内容使用(事实上,$modal会创建一个当前作用域的子作用域)默认为$rootScope
- controller:为
modal指定的控制器,初始化$scope,该控制器可用 modalInstance注入 - resolve:定义一个成员并将他传递给$modal指定的控制器,相当于routes的一个
- reslove,如果需要传递一个objec对象,需要使用angular.copy()
- backdrop:控制背景,允许的值:true(默认),false(无背景),
- static - 背景是存在的,但点击模态窗口之外时,模态窗口不关闭
- keyboard:当按下Esc时,模态对话框是否关闭,默认为ture
- windowClass:指定一个class并被添加到模态窗口中
open方法返回一个实例,该实例具有如下属性:
- close(result):关闭模态窗口并传递一个结果
- dismiss(reason):撤销模态方法并传递一个原因
- result:一个契约,当模态窗口被关闭或撤销时传递
- opened:一个契约,当模态窗口打开并且加载完内容时传递的变量
另外$modalInstance扩展了两个方法$close(result)、$dismiss(reason),这些方法很容易关闭窗口并且不需要额外的控制器。
myModelContent.html
<div class="modal-header"> <h3 class="modal-title">提示</h3></div><div class="modal-body"> {{modalContent}}</div><div class="modal-footer"> <button class="btn btn-primary" ng-click="ok()">确认</button> <button class="btn btn-warning" ng-click="cancel()">退出</button></div>
index.html
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><script src="bower_components/angular/angular.min.js"></script><script src="https://cdn.bootcss.com/angular-ui-bootstrap/0.12.1/ui-bootstrap-tpls.min.js"></script>
js
'use strict';let service = angular.module('service', ['ui.bootstrap']);service.factory('confirmService', function ($modal, $q, $log) { return { openConfirmWindow: function ($scope, modalContent) { let deferred = $q.defer();//生成deferred异步对象 let modalInstance = $modal.open({ templateUrl: 'confirm/myModelContent.html', controller: 'ModalInstanceCtrl', size: 'sm', //尺寸 resolve: { data : function(){ return {modalContent: modalContent}; } } }); modalInstance.result.then(function () { if(!!modalInstance) { modalInstance.dismiss('cancel'); } deferred.resolve(); }, function () { $log.info('Modal dismissed at: ' + new Date()) }); return deferred.promise; /* var deferred = $q.defer();\\生成deferred异步对象 deferred.resolve(rtns);\\执行到这里时,改变deferred状态为执行成功, 返回rtns为从后台取到的数据,可以继续执行then,done返回data为报错,可以继续执行fail return deferred.promise;\\起到保护作用,不允许函数外部改变函数内的deferred状态 把项目上的代码删去函数内容放上来,用于展示$q 的用法: $q用于ajax异步请求数据的回调控制deferred controller把数据请求发给service, service把请求给factory('myHttp',['$q',function($q){........}]); */ } }});service.controller('ModalInstanceCtrl', function ($scope, $modalInstance, data) { $scope.modalContent = data.modalContent; $scope.ok = function () { $modalInstance.close(); // 点击确认后关闭弹窗 }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); // 点击取消后撤销模态框 }});
使用
service.controller('customerCtrl', function ($scope, $modalInstance, data) { $scope.delete = function(id) { var modalTitle = '提示!'; var modalContent = '确定删除吗?'; confirmService.openConfirmWindow(modalTitle,modalContent).then(function() { // 点击确认后的操作 }); };});
阅读全文
0 0
- Angularjs 利用 $modal 实现 confirm 弹窗
- [AngularJS] EasyModal - alert - confirm - modal
- 利用bootstrap的modal组件自定义alert,confirm和modal对话框
- AngularJS - $modal
- angularjs 弹出框 $modal
- Angularjs全局Modal
- angularJS模态框$modal
- angularjs 弹出框 $modal
- angularjs如何打开modal
- 使用angularjs模态框$modal
- 如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
- AngularJs 弹出模态窗口 $modal $uibModal
- modal模态框的实现
- Extjs实现confirm对话框
- 【iOS开发-79】利用Modal方式实现控制器之间的跳转
- jquery-confirm应用 alert confirm 弹出 弹窗
- AngularJS+Echarts利用Ajax实现数据动态刷新
- react native Modal 实现ActionSheet
- git命令回顾
- Springboot 添加JdbcTemplates 访问mysql 数据库
- 本地存取bitmap
- UE4 第三人称完全流程
- czl的知识点整理4——线段树
- Angularjs 利用 $modal 实现 confirm 弹窗
- xcode 打印内存中的值
- 零基础无理论实战Mnist手写字库模型训练并输出结果
- 20171106
- 创建类Person和对象
- 组建一台计算机5_硬件5 多位存储器&累加器&初始汇编(1)
- angular中mvvm模式
- HDU3594:Cactus(Tarjan)
- Linux中的squid实验(代理服务器)