详解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中的107个基础知识收集整理 推荐
Mar 29 Javascript
利用css+原生js制作简单的钟表
Apr 07 Javascript
基于原生js淡入淡出函数封装(兼容IE)
Oct 20 Javascript
Vue开发中整合axios的文件整理
Apr 29 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
Angular2 父子组件通信方式的示例
Jan 29 Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 Javascript
Vue实现6位数密码效果
Aug 18 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 Javascript
更优雅的微信小程序骨架屏实现详解
Aug 07 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 分页类 扩展代码
2009/06/11 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
newxtree.js代码
2007/03/13 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
JQuery样式与属性设置方法分析
2019/12/07 jQuery
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
python随机数分布random测试
2018/08/27 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python内置异常类型全面汇总
2020/05/28 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
信息管理专业推荐信
2013/10/29 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
简历的自我评价
2014/02/03 职场文书
高中语文课后反思
2014/04/27 职场文书
社区义诊活动总结
2014/04/30 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
计划生育证明书写要求
2014/09/17 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书