angular 使用dialog的经验
利用angular在近期的工作中使用了dialog的方式,总结下经验
由于dialog显示的内容不同,需要用到angular 的ng-include加载不同的文件
1 dialog利用指令的方式
app.directive('dialog', function() {
return {
restrict: 'AE',
scope: {
loadData: '='
},
template: '<div ng-show="loadData.isShow" class="dialog-main">' +
‘<div class="dialog-box">' +
'<div class="dialog-content"><i class="close-button" ng-click="closeDialog()"><img src="data:image/close.png" /></i>' +
'<div ng-include="loadData.template.url"></div>' + // 注意下利用ng-inclue加载不同的页面文件
'</div>’ +
’</div>' ,
replace: true,
link: function (scope, element, attr) {
scope.closeDialog = function(){
scope.loadData.isShow = false;
}
}
}
});
2 使用dialog指令的方式
因为需要的dialog页面不少,所以考虑dialog组件直接放到$rootScope环境中,
<div ng-app="zswq">
<dialog load-data="dialog_data"></dialog>
<div app-header-area></div>
<div class="content flex" >
</div>
3 弹出dialog的方式
可点击按钮弹出,利用ng-click="dialog_data.isShow=!data.isShow; dialog_data.data={id:0,unitName:''};dialog_data.template.url='/view/template/content/manage/employee/add_employee.html' ”
好的方式是写在逻辑中,ng-click="getDialog()" ,然后在getDialog函数中 用 dialog_data.isShow=!data.isShow; dialog_data.data={id:0,unitName:''};dialog_data.template.url='/view/template/content/manage/employee/add_employee.html'
4 注意刷新的问题
例如公司编辑页面,公司不同,就需要传递的值就不同,放到 dialog_data.data对象中(看第3条),通过利用 dialog_data.data取传递。
但是注意刷新的问题,编辑不同的公司信息,需要弹出的是一个dialog,但是因为dialog中加载的是没有改变的静态页面,不存在重新加载,页面的数据显示的是原来的(虽然已经更改了dialog_data.data对象),所以就要考虑在弹出dialog的事件中触发下更新的函数
因为dialog处于$rootScope环境,所以$rootScope中$watch监听dialog_data.data对象的改变,如果改变,就向下广播$broadcast一个函数dialogWinNeedReload,位于dialog的那个页面接收广播,更改绑定数据,重新请求
$scope.$on("dialogWinReload",function(){
$scope.queryCompanyData = {
"cId":$rootScope.dialog_data.data.cid,
"token":$cookies.get("token")
}
$scope.initCompany();
});
$rootScope.$watch("dialog_data.data",function(){
$rootScope.$broadcast("dialogWinReload")
})
angular 使用dialog的经验的更多相关文章
- angular material dialog应用
1. 打开弹窗的点击事件 project.component.html <button mat-icon-button class="action-button" (clic ...
- [转]Angular 4|5 Material Dialog with Example
本文转自:https://www.techiediaries.com/angular-material-dialogs/ In this tutorial, we're going to learn ...
- 【翻译】React vs Angular: JavaScript的双向性
翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...
- Angular 2 to Angular 4 with Angular Material UI Components
Download Source - 955.2 KB Content Part 1: Angular2 Setup in Visual Studio 2017, Basic CRUD applicat ...
- AngulaJS实战总结, 带你进入AngularJS世界(待续)
使用AngularJS 进行Hybrid App 开发已经有一年多时间了,这里做一个总结. 一.AngularJS 初始化加载流程 1.浏览器载入HTML,然后把它解析成DOM.2.浏览器载入ang ...
- AngularJS 全局scope与Isolate scope通信
在项目开发时,全局scope 和 directive本地scope使用范围不够清晰,全局scope与directive本地scope通信掌握的不够透彻,这里对全局scope 和 directive本地 ...
- angularJs 问题
1. IE不能渲染指令中的 style="background-color",而chrome和firefox可以 <!DOCTYPE html> <html ng ...
- AngularJs学习笔记--directive
原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...
- 使用AngularJS 进行Hybrid App 开发已经有一年多时间了,这里做一个总结
一.AngularJS 初始化加载流程 1.浏览器载入HTML,然后把它解析成DOM.2.浏览器载入angular.js脚本.3.AngularJS等到DOMContentLoaded事件触发.4.A ...
随机推荐
- [Aaronyang] 写给自己的WPF4.5 笔记13[二维自定义控件技巧-可视化状态实战,自定义容器,注册类命令,用户控件补充]
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 博文摘要:欢迎大家来支持我的<2013-2015 Aar ...
- SNF.CodeGenerator代码生成器前夕-代码生成器初始配置
如果你是第一次使用SNF快速开发平台的话,第一次运行代码生成器的话,可以需要以下信息来帮助你快速进行配置和使用. 代码生成器在使用之前有几个地方需要配置,如果是第一次登录会提示无授权,弹出一个框填入授 ...
- Fraunhofer音频技术为MPEG未来高品质3D音频内容传输的标准依据
OFweek电子工程网讯:世界着名的音频和多媒体技术研究机构Fraunhofer IIS的基于信道/对象的方案获选成为未来MPEG-H 3D音频标准的依据,此项标准旨在传输高品质的3D音频内容.MPE ...
- Android 网络知识必知必会
目录: 网络分层 TCP 和 UDP 区别 TCP 三次握手以及为什么需要三次握手 UDP 四次挥手以及为什么需要四次挥手 socket 开发相关 Http 是什么 Https 是什么以及和 HTTP ...
- 3D建模软件的选择(UG,Solidworks,ProE)
转自:3D建模软件的选择(UG,Solidworks,ProE) 自述 咱是一个码农,和web.软件.控制台打交道太多了,很想玩玩炫的东西,于是学了点点PS,结果发现完全没有美术细胞TT.最近有碰到对 ...
- Android中获取应用程序(包)的信息-----PackageManager的使用
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...
- 11款CSS3动画工具的开发
本文展示了11个最好的和最令人惊异的CSS3动画工具,将为开发者是非常有帮助的.CSS3有设计师和开发人员之间的良好的声誉.它是在这里帮助他们创造惊人的结果. 有了这些动画工具,你可以创造一个轻松自由 ...
- LeetCode: Best Time to Buy and Sell Stock III 解题报告
Best Time to Buy and Sell Stock IIIQuestion SolutionSay you have an array for which the ith element ...
- JVM 内部原理(二)— 基本概念之字节码
JVM 内部原理(二)- 基本概念之字节码 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Enviro ...
- Unity5 AssetBundle系列——简单的AssetBundleManager
一个AssetBundle同时只能加载一次,所以实际使用中一般会伴随着AssetBundle包的管理. 下面是一个简单的AssetBundle管理器,提供了同步和异步加载函数: using Unity ...