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 相关文章推荐
Array.prototype.concat不是通用方法反驳[译]
Sep 20 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
Angular路由简单学习
Dec 26 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
Feb 07 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
Mar 19 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
JS Generator 函数的含义与用法实例总结
Apr 08 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 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
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
关于PHP开发的9条建议
2015/07/27 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
Python之pymysql的使用小结
2019/07/01 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
python温度转换华氏温度实现代码
2020/12/06 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
中海讯通笔试题
2015/09/15 面试题
浙江文明网签名寄语
2014/01/18 职场文书
自我鉴定注意事项
2014/01/19 职场文书
学生会部长竞聘书
2014/03/31 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
火灾现场处置方案
2014/05/28 职场文书
节约能源标语
2014/06/17 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
火烧圆明园观后感
2015/06/03 职场文书
运动会开幕式主持词
2015/07/01 职场文书
基于Python实现一个春节倒计时脚本
2022/01/22 Python