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库 开发规则
Jan 31 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
详解JavaScript正则表达式中的global属性的使用
Jun 16 Javascript
Node.js的Express框架使用上手指南
Mar 12 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
Oct 19 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
简单了解vue.js数组的常用操作
Jun 17 Javascript
Javascript中async与await的捕捉错误详解
Mar 03 Javascript
基于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
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
toString()一个会自动调用的方法
2010/02/08 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
总务岗位职责
2013/11/19 职场文书
美术教师自我鉴定
2014/02/12 职场文书
高级销售求职信
2014/02/21 职场文书
人民调解协议书范本
2014/10/11 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
小学优秀教师材料
2014/12/15 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
敬老院活动感想
2015/08/07 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫