详解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控件
May 07 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
通过命令行创建vue项目的方法
Jul 20 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 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
discuz安全提问算法
2007/06/06 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
python根据日期返回星期几的方法
2015/07/06 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
财务人员个人自荐信范文
2013/09/26 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
大型会议接待方案
2014/03/01 职场文书
公司承诺书怎么写
2014/05/24 职场文书
单位授权委托书范本
2014/09/26 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
选购到合适的激光打印机
2022/04/21 数码科技