详解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 相关文章推荐
js取消单选按钮选中示例代码
Nov 14 Javascript
JavaScript实现瀑布流布局
Jun 28 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
微信小程序页面滑动屏幕加载数据效果
Nov 16 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
layui实现文件或图片上传记录
Aug 28 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
Feb 07 Javascript
js实现百度登录窗口拖拽效果
Mar 19 Javascript
JavaScript快速调试的两个技巧
Nov 04 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
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
初识PHP中的Swoole
2016/04/05 PHP
php上传大文件设置方法
2016/04/14 PHP
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python障碍式期权定价公式
2019/07/19 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Python装饰器结合递归原理解析
2020/07/02 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
英文版销售经理个人求职信
2013/11/20 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
大学生入党思想汇报
2014/01/01 职场文书
文案策划求职信
2014/04/14 职场文书
五一促销活动总结
2014/07/01 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书