详解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 设计模式之单体模式 面向对象学习基础
Apr 18 Javascript
javascript 文章截取部分无损html显示实现代码
May 04 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
js 程序执行与顺序实现详解
May 13 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
jQuery向后台传入json格式数据的方法
Feb 13 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
Jul 13 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
javascript网页随机点名实现过程解析
Oct 15 Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
js实现数字滚动特效
2019/12/16 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
用python实现一个简单的验证码
2020/12/09 Python
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
日期和时间问题
2015/01/04 面试题
法律专业推荐信范文
2013/11/29 职场文书
小学开学寄语
2014/01/19 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
大学生村官承诺书
2014/03/28 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
公务员处分决定书
2015/06/25 职场文书
2016年党建工作简报
2015/11/26 职场文书
老舍《猫》教学反思
2016/02/17 职场文书