$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),这些方法很容易关闭窗口并且不需要额外的控制器

  1. <!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. };

modal的使用的更多相关文章

  1. Bootstrap 模态框(Modal)插件

    页面效果: html+js: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. 学会用bootstrap的modal和carousel

    bootstrap框架提供了很多好用的javascript组件,可以很方便的实现常用的js效果,比如点击弹出一个div(modal).下拉菜单.旋转木马(carousel或slider),非常适合前端 ...

  3. angularjs 弹出框 $modal

    angularjs 弹出框 $modal 标签: angularjs 2015-11-04 09:50 8664人阅读 评论(1) 收藏 举报  分类: Angularjs(3)  $modal只有一 ...

  4. yii2 modal弹窗之ActiveForm ajax表单异步验证

    作者:白狼 出处:http://www.manks.top/yii2_modal_activeform_ajax.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位 ...

  5. yii2中如何使用modal弹窗之基本使用

    作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

  6. Yii2 modal中 ajax提交表单

    view: // view 代码 $form = ActiveForm::begin(['id' => $model->formName()]); // js 代码 $js = <& ...

  7. js控制Bootstrap 模态框(Modal)插件

    js控制Bootstrap 模态框(Modal)插件 http://www.cnblogs.com/zzjeny/p/5564400.html

  8. 解决select2在bootstrap的modal中默认不显示的问题

    在Bootstrap中的Modal,select2插件会有不显示,因为其z-index小于modal,还有另外一个问题是,修正z-index之后,select2不会自动失去焦点的问题.代码解决如下: ...

  9. 关于Delphi错误:Cannot make a visible window modal

    Delphi的fsMDIChild类型的窗体是不能使用ShowModal的,否则会弹出"Cannot make a visible window modal"异常, 但是把fsMD ...

  10. semantic modal 首次弹出位置不正确()

    暂不知是什么原因,先记录下,可以用下面这句css解决 .ui.modal{ %; }

随机推荐

  1. aspx页面,中文乱码解决方案

    由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...

  2. Java 枚举7种常见用法

    (转)原创地址:http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/ JDK1.5引入了新的类型--枚举.在 Java ...

  3. Android学习---如何创建数据库,SQLite(onCreate,onUpgrade方法)和SQLiteStudio的使用

    一.android中使用什么数据库? SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程式庫中.它是D.RichardHipp建立的公有领域项目.SQLite 是一个软件库,实现 ...

  4. 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性

      本文转载自:http://blog.sina.com.cn/s/blog_5d65a16901011kom.html 关键字:内省.JavaBean.PropertyDescriptor类.Int ...

  5. Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  6. ABP的语言切换

    在ABP官网http://www.aspnetboilerplate.com/创建一个Multi Page Web Application项目并打开,在Web项目下可以找到一个Controllers/ ...

  7. python获取命令行变量

    python获取命令行参数的方法是,开头使用import sys, 后面用sys.argv[0]表示文件名,sys.argv[1],sys.argv[2]...表示后续命令行参数. 注意,sys.ar ...

  8. DEV设计之自动流水号,DEV专家解答,自己折腾了半天也没有搞定,怪英文不好

    () 老外专家给了回答,结果没有全到懂,又折腾了20分钟朋友提示才搞定 获取一个自动增加1的流水号值, 第一个参数是本事的数据库连接对象,第2个参数是也这个值为唯一标识返回来一个增量的值,第三个好像没 ...

  9. js处理匿名函数

    首先js 有DOM0 和DOM2级事件 DOM 0级事件处理一般是直接把一个函数分配给一个事件处理程序,既可以在元素中直接分配一个事件处理程序 一个元素可以绑定多个事件 DOM0: <div i ...

  10. 《第一本docker书》- 第一章笔记

    环境: Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic i686) 第一章: 1 Docker客户端和服务器 2 Docker镜像 添加一个文件,执行一 ...