详解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 代码的方法小结
Jul 16 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
Jquery 的outerHeight方法使用介绍
Sep 11 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
Oct 10 Javascript
浅谈js中function的参数默认值
Feb 20 Javascript
使用jQuery,Angular实现登录界面验证码详解
Apr 27 jQuery
JS中定位 position 的使用实例代码
Aug 06 Javascript
VUE实现表单元素双向绑定(总结)
Aug 08 Javascript
五分钟搞懂Vuex实用知识(小结)
Aug 12 Javascript
分离与继承的思想实现图片上传后的预览功能: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学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
信息管理员岗位职责
2013/12/01 职场文书
毕业生就业自荐信
2013/12/04 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
信访稳定工作汇报
2014/10/27 职场文书
周年庆典答谢词
2015/01/20 职场文书
环卫处个人工作总结
2015/03/04 职场文书
城南旧事观后感
2015/06/11 职场文书
西游记读书笔记
2015/06/25 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android