利用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的经验的更多相关文章

  1. angular material dialog应用

    1. 打开弹窗的点击事件 project.component.html <button mat-icon-button class="action-button" (clic ...

  2. [转]Angular 4|5 Material Dialog with Example

    本文转自:https://www.techiediaries.com/angular-material-dialogs/ In this tutorial, we're going to learn ...

  3. 【翻译】React vs Angular: JavaScript的双向性

    翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...

  4. 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 ...

  5. AngulaJS实战总结, 带你进入AngularJS世界(待续)

    使用AngularJS  进行Hybrid App 开发已经有一年多时间了,这里做一个总结. 一.AngularJS 初始化加载流程 1.浏览器载入HTML,然后把它解析成DOM.2.浏览器载入ang ...

  6. AngularJS 全局scope与Isolate scope通信

    在项目开发时,全局scope 和 directive本地scope使用范围不够清晰,全局scope与directive本地scope通信掌握的不够透彻,这里对全局scope 和 directive本地 ...

  7. angularJs 问题

    1. IE不能渲染指令中的 style="background-color",而chrome和firefox可以 <!DOCTYPE html> <html ng ...

  8. AngularJs学习笔记--directive

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...

  9. 使用AngularJS 进行Hybrid App 开发已经有一年多时间了,这里做一个总结

    一.AngularJS 初始化加载流程 1.浏览器载入HTML,然后把它解析成DOM.2.浏览器载入angular.js脚本.3.AngularJS等到DOMContentLoaded事件触发.4.A ...

随机推荐

  1. 转 可能是最漂亮的Spring事务管理

    Snailclimb 2018年05月21日阅读 4246 可能是最漂亮的Spring事务管理详解 Java面试通关手册(Java学习指南):github.com/Snailclimb/… 微信阅读地 ...

  2. CentOS 7 配置HTTPS加密访问SVN

    上一篇文章已经介绍了如何在CentOS7环境下安装SVN并整合HTTP访问 http://www.cnblogs.com/fjping0606/p/7581093.html 那么本文则介绍如何添加HT ...

  3. 把上传过来的多张图片拼接转为PDF的实现代码

    以下是把上传过来的多张图片拼接转为PDF的实现代码,不在本地存储上传上来的图片,下面是2中做法,推荐第一种,把pdf直接存储到DB中比较安全. 如果需要在服务器上存储客户端上传的文件时,切记存储文件时 ...

  4. SourceInsight: sourceInsight4.0 修改默认字体

    快捷键 Alt + Y

  5. tail -f 实时查看日志文件 linux查看日志后100行

    tail -f 实时查看日志文件 tail -f 日志文件logtail - 100f 实时查看日志文件 后一百行tail -f -n 100 catalina.out linux查看日志后100行搜 ...

  6. Android开发(十二)——头部、中部、底部布局

    参考: [1] http://www.thinksaas.cn/group/topic/82898/ [2] http://***/Article/12399 其实RadioGroup不好使,不能图片 ...

  7. 带cookie跨域问题的思路以及echo的解决方案

    问题起因 前后端分离,前端要访问后端资源,而且需要携带cookie信息,这时碰到了跨域问题.一开始以为设置为允许跨域allow_origins为即可.可是浏览器还是拦截的请求,于是查看跨域规则,原来跨 ...

  8. 【iCore4 双核心板_FPGA】例程九:锁相环实验——锁相环使用

    实验现象: 利用Quartus内部组件生成锁相环,用SignalTap II进行校验. 核心代码: module pll( input clk_25m, output clk_100m, output ...

  9. Serializable接口

    Serializable这个接口起啥作用呢?? 这个接口没有提供任何方法,我们实现它有什么意义呢? Serializable接口是启用其序列化功能的接口.Serializable接口中没有任何方法,一 ...

  10. SqlServer 数据去重

    找出所有不重复的数据 SELECT [Id] ,[Name] ,[Mobile] ,[City] ,[Counter] ,[utm_source] ,[utm_medium] ,[utm_campai ...