详解AngularJS 模态对话框


Posted in Javascript onApril 07, 2016

在涉及GUI程序开发的过程中,常常有模态对话框以及非模态对话框的概念

模态对话框:在子界面活动期间,父窗口是无法进行消息响应。独占用户输入

非模态对话框:各窗口之间不影响

主要区别:非模态对话框与APP共用消息循环,不会独占用户。

模态对话框独占用户输入,其他界面无法响应

本文内容

Angular JS 实现模式对话框。基于 AngularJS v1.5.3 和 Bootstrap v3.3.6。

项目结构

详解AngularJS 模态对话框 

图 1 项目结构

运行结果

详解AngularJS 模态对话框详解AngularJS 模态对话框

图 1 运行结果:大模态

index.html

<!DOCTYPE html>
<!--[if lt IE 7]> 
<html class="no-js lt-ie9 lt-ie8 lt-ie7">
<![endif]--><!--[if IE 7]> 
<html class="no-js lt-ie9 lt-ie8">
<![endif]--><!--[if IE 8]> 
<html class="no-js lt-ie9"> 
<![endif]--><!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]--><head>
<meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width"><title>AngularJS 模态对话框</title><link rel="stylesheet" 
href="../src/vendor/bootstrap/dist/css/bootstrap.css">
</head>
<body ng-app="myApp" class="body"> 
<!-- modal template --> 
<script type="text/ng-template" id="myModelContent.html"> 
<div class="modal-header"> 
<h3 class="modal-title">模态框</h3> 
</div> 
<div class="modal-body"> 
<ul> 
<li ng-repeat="item in items"> 
<a ng-click="selected.item = item">{{item}}</a> 
</li> 
<div class="h2">当前选择:
<b>{{selected.item}}</b></div> 
</ul> 
</div> 
<div class="modal-footer"> 
<button class="btn btn-primary" ng-click="ok()"> 
确认 
</button> 
<button class="btn btn-warning" ng-click="cancel()">退出</button> 
</div> 
</script> 
<div class="container h1">AngularJS 模态对话框</div> 
<section class="row"> 
<section ng-controller="modalDemo" class="col-md-6" 
style="margin: 40px auto; float: none; background: #fff; padding: 30px;"> 
<button class="btn btn-default" ng-click="open('lg')">大模态</button> 
<button class="btn btn-default" ng-click="open()">中模态</button> 
<button class="btn btn-default" ng-click="open('sm')">小模态</button> 
<hr> 
<div class="h1" ng-show="selected">当前选择:{{selected}}</div> 
</section> 
</section> 
<!-- load js --> 
<script src="../src/vendor/angular/angular.js">
</script> 
<script 
src="http://cdn.bootcss.com/angular-ui-bootstrap/0.11.2/ui-bootstrap-tpls.js">
</script> 
<script src="../src/js/mymodal.js">
</script>
</body>
</html>

mymodal.js

/** * */angular.module('myApp', 
[ 'ui.bootstrap' ])
// demo controller.controller('modalDemo', function($scope, $modal, $log) 
{ 
// list 
$scope.items = [ 'angularjs', 'backbone', 'canjs', 'Ember', 'react' ]; 
// open click 
$scope.open = function(size) 
{ 
var modalInstance = $modal.open({ 
templateUrl : 'myModelContent.html', 
controller : 'ModalInstanceCtrl', // specify controller for modal 
size : size, 
resolve : { 
items : function() 
{ 
return $scope.items; 
} 
} 
}); 
// modal return result 
modalInstance.result.then(function(selectedItem)
{ 
$scope.selected = selectedItem; 
}, function() 
{ 
$log.info('Modal dismissed at: ' + new Date()) 
}); 
}})// modal controller.controller('ModalInstanceCtrl', function($scope, $modalInstance, items) 
{ 
$scope.items = items; 
$scope.selected = 
{ 
item : $scope.items[0] 
}; 
// ok click 
$scope.ok = function()
{ 
$modalInstance.close($scope.selected.item); 
}; 
// cancel click 
$scope.cancel = function() 
{ 
$modalInstance.dismiss('cancel'); 
}});

以上内容是小编给大家介绍的AngularJS 模态对话框 ,希望对大家有所帮助!

Javascript 相关文章推荐
javascript对象的property和prototype是这样一种关系
Mar 24 Javascript
js window.event对象详尽解析
Feb 17 Javascript
JavaScript 获取当前时间戳的代码
Aug 05 Javascript
Jquery实现的tab效果可以指定默认显示第几页
Oct 16 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 #Javascript
jQuery动态添加
Apr 07 #Javascript
javascript模块化简单解析
Apr 07 #Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 #Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 #Javascript
jQuery实现简单滚动动画效果
Apr 07 #Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 #Javascript
You might like
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
jquery 选择器部分整理
2009/10/28 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
python对数组进行反转的方法
2015/05/20 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
科室工作个人总结的自我评价
2013/10/29 职场文书
大课间活动制度
2014/01/18 职场文书
交通安全责任书范本
2014/07/24 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
图解上海144收音机
2021/04/22 无线电
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers