angular material dialog应用
1. 打开弹窗的点击事件
project.component.html
<button mat-icon-button class="action-button" (click)="editDialog(project)">
<mat-icon>create</mat-icon>编辑
</button>
<button mat-mini-fab color="warn" class="add-project" (click)="openDialog()">
<mat-icon>add</mat-icon>
</button>
project.component.ts
import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material';
import { NewProjectComponent } from '../new-project/new-project.component';
@Component({
  selector: 'app-project',
  templateUrl: './project.component.html',
  styleUrls: ['./project.component.scss']
})
export class ProjectComponent implements OnInit {
  projects=[
    {
      "name":'企业协作平台',
      "desc":'这是一个企业内部项目',
      "coverImg":'assets/img/covers/0.jpg'
    },
    {
      "name":'员工管理平台',
      "desc":'这是一个企业内部项目',
      "coverImg":'assets/img/covers/1.jpg'
    }
  ];
  constructor(public dialog:MatDialog) { }
  ngOnInit() {
  }
  // 新建项目
  openDialog(){
    const dialogRef = this.dialog.open(NewProjectComponent, {
      width: '250px'
    });
    dialogRef.afterClosed().subscribe(result => {
      console.log('The dialog was closed',result);
    });
  }
  // 编辑项目
  editDialog(data){
    const dialogRef = this.dialog.open(NewProjectComponent,{
      width:'250px',
      data:data
    });
    dialogRef.afterClosed().subscribe(result=>{
      console.log('The dialog was closed',result);
    })
  }
}
2. 弹窗
new-project.component.html
<h1 mat-dialog-title>新建项目</h1>
<div mat-dialog-content>
<mat-form-field>
<input matInput [(ngModel)]="project.name" placeholder="项目名称">
</mat-form-field>
<mat-form-field>
<input matInput [(ngModel)]="project.desc" placeholder="项目描述">
</mat-form-field>
</div>
<div mat-dialog-actions>
<button mat-raised-button (click)="onNoClick()">关闭</button>
<button mat-raised-button [mat-dialog-close]="project" cdkFocusInitial color="primary">保存</button>
</div>
new-project.component.ts
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
@Component({
  selector: 'app-new-project',
  templateUrl: './new-project.component.html',
  styles: []
})
export class NewProjectComponent implements OnInit {
  project:Object;
  constructor(
    public dialogRef:MatDialogRef<NewProjectComponent>,
    @Inject(MAT_DIALOG_DATA) public data
  ) { }
  ngOnInit() {
    this.project = this.data||{};
  }
  onNoClick(){
    this.dialogRef.close();
  }
}
3. 特别注意:new-project组件是一个服务。在project.module.ts中必须写入entryComponent中,否则会报错
import { NgModule } from '@angular/core';
import { ProjectComponent } from './project/project.component';
import { SharedModule } from '../shared/shared.module';
import { NewProjectComponent } from './new-project/new-project.component';
@NgModule({
  imports: [
    SharedModule
  ],
  declarations: [ProjectComponent, NewProjectComponent],
  entryComponents:[
    NewProjectComponent
  ]
})
export class ProjectModule { }
angular material dialog应用的更多相关文章
- [转]Angular 4|5 Material Dialog with Example
		本文转自:https://www.techiediaries.com/angular-material-dialogs/ In this tutorial, we're going to learn ... 
- 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 ... 
- Angular Material design设计
		官网: https://material.io/design/ https://meterial.io/components 优秀的Meterial design站点: http://material ... 
- [转]Angular4 引用 material dialog时自定义对话框/deep/.mat-dialog-container
		本文转自:https://blog.csdn.net/qq_24078843/article/details/78560556 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ... 
- Angular Material & Hello World
		前言 Angular Material(下称Material)的组件样式至少是可以满足一般的个人开发需求(我真是毫无设计天赋),也是Angular官方推荐的组件.我们通过用这个UI库来快速实现自己的i ... 
- 手势模型和Angular Material的实现
		iPhone的出现让手势操作大为流行,也使得手势编程成为开发人员的挑战. 拟物设计也把手势编程纳入在内,大概也想制定一个在交互模型标准.现阶段因为MD还在预发布阶段,因此还只实现了单点手势(一个指头) ... 
- 【转】Android新组件Material Dialog,SwipeRefreshLayout,ListPopupWindow,PopupMenu等
		朝花夕拾----新组件的学习和使用 分类: Android UI2015-06-26 11:31 440人阅读 评论(0) 收藏 举报 uidialogMaterial 目录(?)[-] Mate ... 
- Material使用11 核心模块和共享模块、 如何使用@angular/material
		1 创建项目 1.1 版本说明 1.2 创建模块 1.2.1 核心模块 该模块只加载一次,主要存放一些核心的组件及服务 ng g m core 1.2.1.1 创建一些核心组件 页眉组件:header ... 
- Angular Material 白天模式和黑夜模式
		Material design调色板 https://www.materialpalette.com/ 明暗:虽然颜色不变,但是针对白天黑夜有做不同处理. 叠加:对话框,弹出菜单,事先是没有加载的.是 ... 
随机推荐
- 用Understand阅读 VS2010项目源码
			一.查看vs2010项目 打开understand,File-New-Project...-Next-Next [向导第三步,选"Import Visual Sudio project fi ... 
- cogs 32. [POI1999] 位图
			32. [POI1999] 位图 ★ 输入文件:bit.in 输出文件:bit.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述 ] 给定一个 n*m 的矩形位图, ... 
- 解决WIN7远程登录提示无法保存凭据的问题
			事由:今天到公司,想起手上还有点小东西没有改动完,就打算连上server进行小改动.结果发现昨天还能好好的远程连接server的WIN7,今天突然间不能远程登录了~ 无奈~悲催~ 我仅仅能猜是不是有什 ... 
- Oracle-02-数据库概述
			一.数据库用途 用于存放数据的软件 当中Application server重要,将数据存在表中每一个表关系就能够反映不同表之间数据的关系,比方淘宝用户注冊.商品买卖等数据存在操作系统的目录中,不便于 ... 
- javafx style and cssFile
			public class EffectTest extends Application { public static void main(String[] args) { launch(args); ... 
- vuejs模板中使用html代码
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 分享一个jquery实现的双向选择组件
			<html><head> <meta charset="utf-8"> <title>数据删选组件</title> &l ... 
- 51Nod 迷宫问题(最短路+权值)(模板)
			你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游戏规定了 ... 
- HDU 4699 Editor 维护栈
			维护两个栈,分别存光标前和光标后的数 再维护前缀和的栈 和 前缀和最大值的栈 注意一下左移,右移,删除到顶了就不操作了 5个操作 I x : 光标处插入x -----> s1.push(x) ... 
- gSOAP 使用WebServer心得
			关于正常怎么使用gSOAP的话,下面那篇博客已经讲得非常详细,我就不再赘述了 https://www.cnblogs.com/dengpeng1004/p/6165751.html 问题1: WCF ... 
