AngularJS模态框模板ngDialog的使用详解


Posted in Javascript onMay 11, 2018

项目开始的时候我们用的对话框是AngularJS的$modal模态框,但是后来发现$modal打开的对话框是相对页面静止的,如果对话框是一个很长的表单,这样体验度就不是很好了,还有$modal传$scope不是很灵活的原因,后来就改用的$ngDialog.

官方的API在这里:https://www.npmjs.com/package/ng-dialog

首先确定你的项目已经安装了$ngDialog需要的相关文件。

接下来一个简单的demo

del.html内容如下,就是你的对话框内容,这里比较简单,只是一个确认对话框

<meta charset="UTF-8"> 
<div class="modal-header"> 
 <h4 class="modal-title">删除</h4> 
</div> 
 
<div class="modal-body"> 
 <form autocomplete="off" class="file-brief file-brief-show form-validation" name="ObsForm" id="form-new-style"> 
  <div class="col-sm-12 m-t-xs m-b-xs "> 
   <div class="form-group"> 
    <label>您确认要删除吗?</label> 
   </div> 
  </div> 
 </form> 
</div> 
<div class="modal-footer"> 
 <button type="submit" class="btn" ng-click="confirm()" >确定</button> 
 <button type="button" class="btn" ng-click="cancel()">取消</button> 
</div>

在你的Controller里添加你的方法:

$scope.del = function () { 
   ngDialog.open({ 
    template: '/del.html', 
    className: 'ngdialog-theme-default', 
    scope: $scope, 
    controller: function ($scope) { 
    ... 
     $scope.confirm = function () { 
     ... 
     }; 
     $scope.cancel = function () { 
      $scope.closeThisDialog(); 
     }; 
    } 
   }); 
};

这里template里是一个路径,其实如果对话框简单的话可以在template里直接写<div>内容,只是要加一个属性:plain:true,

对话框的高度宽度都可以自定义,width:500,//绝对宽度。或者width:‘%50' //相对宽度

针对以上两点,示例:

$scope.delBucket = function () { 
   ngDialog.open({ 
    template: '<div class="modal-header"><h4 class="modal-title">删除Bucket</h4></div>' + 
    '<div class="modal-footer"><button type="submit" class="btn" ng-click="confirm()" >确定</button>'+ 
       '<button type="button" class="btn" ng-click="cancel()">取消</button></div>', 
  plain:true, 
    className: 'ngdialog-theme-default', 
  width:600, 
    scope: $scope, 
    controller: function ($scope) { 
    ... 
     $scope.confirm = function () { 
     ... 
     }; 
     $scope.cancel = function () { 
      $scope.closeThisDialog(); 
     }; 
    } 
   }); 
  };

以上只是一个简单的示例,官方文档上还有通过id打开对话框,打开一个确认对话框等相关详细介绍。

另外有一篇对$ngDialog介绍非常详细的文章,基本上就是把官方API翻译过来了。

附上文章链接https://3water.com/article/139899.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现的网页局布刷新效果
Dec 01 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
JS判定是否原生方法
Jul 22 Javascript
js实现简单锁屏功能实例
May 27 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
Dec 06 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
vue实现在data里引入相对路径
Jun 05 Vue.js
基于ionic实现下拉刷新功能
May 10 #Javascript
详解各版本React路由的跳转的方法
May 10 #Javascript
React路由管理之React Router总结
May 10 #Javascript
React从react-router路由上做登陆验证控制的方法
May 10 #Javascript
详解Angular路由之路由守卫
May 10 #Javascript
JavaScript实现一个简易的计算器实例代码
May 10 #Javascript
浅谈node.js 命令行工具(cli)
May 10 #Javascript
You might like
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python中的pprint折腾记
2015/01/21 Python
Python并行分布式框架Celery详解
2018/10/15 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python按钮的响应事件详解
2019/03/04 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
什么是数组名
2012/05/10 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
《假如》教学反思
2014/04/17 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL