详解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 相关文章推荐
定义select的边框颜色
Apr 28 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
js图片预加载示例
Apr 30 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
Jun 05 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
Bootstrap表单布局
Jul 19 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
Javascript中的getter和setter初识
Aug 17 Javascript
详解express + mock让前后台并行开发
Jun 06 Javascript
vue2.0 解决抽取公用js的问题
Jul 31 Javascript
Vue基于localStorage存储信息代码实例
Nov 16 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使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
JS 判断代码全收集
2009/04/28 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
详谈js模块化规范
2017/07/07 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
js实现随机点名
2021/01/19 Javascript
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
django自带调试服务器的使用详解
2019/08/29 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
高三自我鉴定范文
2013/10/19 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
教堂婚礼主持词
2014/03/14 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
个人整改措施书面材料
2014/10/24 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang