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 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
jquery通过a标签删除table中的一行的代码
Dec 02 Javascript
js实现点击图片改变页面背景图的方法
Feb 28 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
很棒的vue弹窗组件
May 24 Javascript
微信小程序实现倒计时60s获取验证码
Apr 17 Javascript
electron中使用bootstrap的示例代码
Nov 06 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
如何自定义微信小程序tabbar上边框的颜色
Jul 09 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 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
PHP 批量删除 sql语句
2009/06/05 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
一道python走迷宫算法题
2018/01/22 Python
python样条插值的实现代码
2018/12/17 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
邀请函范文
2015/02/02 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python