anjularjs弹出model(模态框)

$modal是一个可以迅速创建模态窗口的服务,创建部分页,控制器,并关联他们

$modal仅有一个方法open(options)

  • templateUrl:模态窗口的地址
  • template:用于显示html标签
  • scope:一个作用域为模态的内容使用(事实上,$modal会创建一个当前作用域的子作用域)默认为$rootScope
  • controller:为$modal指定的控制器,初始化$scope,该控制器可用$modalInstance注入
  • resolve:定义一个成员并将他传递给$modal指定的控制器,相当于routes的一个reslove属性,如果需要传递一个objec对象,需要使用angular.copy()
  • backdrop:控制背景,允许的值:true(默认),false(无背景),“static” - 背景是存在的,但点击模态窗口之外时,模态窗口不关闭
  • keyboard:当按下Esc时,模态对话框是否关闭,默认为ture
  • windowClass:指定一个class并被添加到模态窗口中

open方法返回一个模态实例,该实例有如下属性

  • close(result):关闭模态窗口并传递一个结果
  • dismiss(reason):撤销模态方法并传递一个原因
  • result:一个契约,当模态窗口被关闭或撤销时传递
  • opened:一个契约,当模态窗口打开并且加载完内容时传递的变量

另外,$modalInstance扩展了两个方法$close(result)$dismiss(reason),这些方法很容易关闭窗口并且不需要额外的控制器

<!DOCTYPE html>   2 <html ng-app="ModalDemo">   3 <head>   4     <title></title>   5     <link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">   6     <script src="lib/angular/angular.min.js"></script>   7     <script src="lib/bootstrap-gh-pages/ui-bootstrap-tpls-0.7.0.min.js"></script>   8     <script src="lib/angular/i18n/angular-locale_zh-cn.js"></script>   9 </head>  10 <body>  11 <div ng-controller="ModalDemoCtrl">  12     <script type="text/ng-template" id="myModalContent.html">  13         <div class="modal-header">  14             <h3>I‘m a modal!</h3>  
15         </div>  
16         <div class="modal-body">  
17             <ul>  
18                 <li ng-repeat="item in items">  
19                     <a ng-click="selected.item = item">{{ item }}</a>  
20                 </li>  
21             </ul>  
22             Selected: <b>{{ selected.item }}</b>  
23         </div>  
24         <div class="modal-footer">  
25             <button class="btn btn-primary" ng-click="ok()">OK</button>  
26             <button class="btn btn-warning" ng-click="cancel()">Cancel</button>  
27         </div>  
28     </script>  
29     <button class="btn" ng-click="open()">Open me!</button>  
30 </div>  
31 <script>  
32     var ModalDemo = angular.module(‘ModalDemo‘, [‘ui.bootstrap‘]);  
33     var ModalDemoCtrl = function ($scope, $modal, $log) {  
34         $scope.items = [‘item1‘, ‘item2‘, ‘item3‘];  
35         $scope.open = function () {  
36             var modalInstance = $modal.open({  
37                 templateUrl: ‘myModalContent.html‘,  
38                 controller: ModalInstanceCtrl,  
39                 resolve: {  
40                     items: function () {  
41                         return $scope.items;  
42                     }  
43                 }  
44             });  
45             modalInstance.opened.then(function(){//模态窗口打开之后执行的函数  
46                 console.log(‘modal is opened‘);  
47             });  
48             modalInstance.result.then(function (result) {  
49                  console.log(result);  
50             }, function (reason) {  
51                 console.log(reason);//点击空白区域,总会输出backdrop click,点击取消,则会暑促cancel  
52                 $log.info(‘Modal dismissed at: ‘ + new Date());  
53             });  
54         };  
55     };  
56     var ModalInstanceCtrl = function ($scope, $modalInstance, items) {  
57         $scope.items = items;  
58         $scope.selected = {  
59             item: $scope.items[0]  
60         };  
61         $scope.ok = function () {  
62             $modalInstance.close($scope.selected);  
63         };  
64         $scope.cancel = function () {  
65             $modalInstance.dismiss(‘cancel‘);  
66         };  
67     };  
68 </script>  
69 </body>  
70 </html>
时间: 2024-08-01 22:45:28

anjularjs弹出model(模态框)的相关文章

bootstrap弹出的模态框水平垂直居中的实现

学习javascript从入门到放弃!,这是第一篇随笔,经验不足,如有不当之处,还望指出.好了废话不多说直接切入正题吧 1.bootstrap默认的model写法: //触发模态框的button <button data-toggle="modal" data-target="#myModal"type="button" class="btn btn-default" >button </button>

用Bootstrap框架弹出iframe页面 在弹出的模态框中载人iframe页面

HTML代码: <div class="modal fade" id="NoPermissionModal"> <div class="modal-dialog" > <div class="modal-content"> <div class="modal-header"> <%-- <button type="button"

Bootstrap model模态框与百度地图API发生冲突时的解决办法

在使用百度地图API的过程中,当我需要在infoWindow的按钮点击触发modal模态框时,就会发现bootstrap的模态框会失效.弄清modal的原理就可以通过自定义modal的css样式和modal方法来解决这个问题.Bootstrap modal模态框的原理是通过控制modal框div的visibility属性来变化来实现的,在初始状态modal div的visibility属性值为hidden,在页面上隐藏,当点击按钮触发(或别的事件)一个方法使div的visibility值变为vi

解决PL/SQL Dev连接Oracle弹出空白提示框

第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的. 没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结. 出现这种问题,解决方法大概有这几种: 1.权限不够,导致弹出空吧提示框.(直接上链接) http://jingyan.baidu.com/article/066074d6760959c3c21cb0d6.html 就PL/SQL图标上点右键---属性---兼容性--管理员

ActionBar点击弹出下拉框操作

在使用Ubuntu作为开发环境时经常需要在全局安装一些依赖框架等,这个时候就常常需要用到root权限,但是在Ubuntu下第一次使用su命令时会提示认证失败:查找资料后发现Ubuntu下root权限默认是锁定的,可能是处于安全考虑,但是作为开发人员肯定是需要root权限的. 在命令行中可以输入下面命令设置root密码,这样就能随时使用root权限了: [email protected]:~$ su 密码: su:认证失败 [email protected]:~$ sudo passwd [sud

bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题

答案来自老外http://stackoverflow.com/questions/14795035/twitter-bootstrap-modal-blocks-text-input-field $('#myModal').on('shown', function() { $(document).off('focusin.modal'); }); 这个是国内同学的解决方法: http://www.oschina.net/question/226830_143869 //显示modal $('#m

C# 仿制QQ弹出新闻消息框

打开QQ的时候,QQ新闻弹出窗体在屏幕的右下角就会慢慢升起一个小窗口,占用的地方不大,可以起到提示的作用.下面就让我们来看看,怎样用系统API来轻松实现这个功能. API原型函数: bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); 从字面的意思来看,这个函数名为"活动的窗口",事实上也如此,通过这个函数,可以使我们的窗体动作丰富起来,要在c#中使用winApi首先引入命名空间: view plaincopy to cli

PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框

零.引言 PropertyGrid中我们经常看到一些下拉式的编辑方式(Color属性)和弹出式编辑框(字体),这些都是为一些复杂的属性提供的编辑方式,本文主要说明如何实现这样的编辑方式. 一.为属性提供编辑类 弹出式和下拉式是如何实现的呢,这需要为属性提供一个专门的编辑类..Net为我们提供了一个System.Drawing.Design.UITypeEditor类,它是所有编辑类的基类,从他继承出了诸如ColorEditor.FontEditor的类,因此我们可以在属性框中编辑颜色和字体.定义

弹出输入文本框上弹的动画效果

先看以下简单的模型图片效果,有图才有真相: 软键盘弹出效果: 终极效果实现: 效果呢就是这样: 简单解释一下:由于显示页面要承载很多的信息内容,所以在让用户发布动态的时候,要求从页面的底部以动画的方式向上抽出.当弹出软键盘输入法的时候,要避免输入框被全部遮挡或者部分遮挡.则,软键盘要把输入文本框顶起来,完全的托起来. 那么,就要完成这几步骤: 1,在该页面的类中(Actiivty或者fragment),在加载该布局之前添加这句话,其作用是使文本框根据软键盘弹出自动调节位置和大小: getWind