• Angular项目中共享模块的实现


    创建share Modele:ng g m share

    import进来所有需要共享的模块都export出去,

    一、共享CommonModule

    暂时只有CommonModule,以后会有一些需要共享的组件。

    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    
    @NgModule({
      imports: [
        CommonModule
      ],
      exports:[
        CommonModule
      ],
      declarations: []
    })
    export class SharedModule { }

    在app Module中把core Module导入进来。

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    
    import { AppComponent } from './app.component';
    import {CoreModule} from './core/core.module';
    
    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        CoreModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

    二、共享MaterialModule

    为了方便管理,把Material相关组件的导入导出单独放在一个Moduel中,在ShareModule中导入导出即可。

    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { MatToolbarModule, MatSidenavModule, MatButtonModule, MatCardModule, MatInputModule, MatListModule, MatSlideToggleModule, MatGridListModule, MatDialogModule, MatAutocompleteModule, MatMenuModule, MatCheckboxModule, MatTooltipModule, MatDatepickerModule, MatRadioModule, MatNativeDateModule, MatSelectModule } from '@angular/material';
    import { MatIconModule } from '@angular/material';
    
    const module=[
      MatSidenavModule,
      MatIconModule,
      MatToolbarModule,
      MatIconModule,
      MatButtonModule,
      MatCardModule,
      MatInputModule,
      MatListModule,
      MatSlideToggleModule,
      MatGridListModule,
      MatDialogModule,
      MatAutocompleteModule,
      MatMenuModule,
      MatCheckboxModule,
      MatTooltipModule,
      MatDatepickerModule,
      MatRadioModule,
      MatNativeDateModule,
      MatSelectModule
    ];
    
    @NgModule({
      declarations: [],
      imports: [
        module
      ],
      exports:[
        module
      ]
    })
    export class MaterialModule { }
    View Code
    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { MaterialModule } from '../material/material.module';
    import { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';
    
    @NgModule({
      imports: [
        CommonModule,
        MaterialModule
      ],
      exports:[
        CommonModule,
        MaterialModule
      ],
      declarations: [ConfirmDialogComponent]
    })
    export class SharedModule { }

    三、共享ConfirmDialog

    确认对话框不管是在删除任务还是在删除项目中都会用到,所以放在sharedModule中。

    $ ng g c shared/confirm-dialog

    <form>
      <h2 md-dialog-title>{{title}}</h2>
      <div mat-dialog-content>
        {{content}}
      </div>
      <div mat-dialog-actions>
        <button type="button" mat-raised-button color="primary" (click)="onClick(true)">确定</button>
        <button type="button" mat-button mat-dialog-close  (click)="onClick(false)">取消</button>
      </div>
    </form>
    import { Component, OnInit, Inject } from "@angular/core";
    import { MatDialogRef } from "@angular/material";
    import { MAT_DIALOG_DATA } from "@angular/material";
    
    @Component({
      selector: "app-confirm-dialog",
      templateUrl: "./confirm-dialog.component.html",
      styleUrls: ["./confirm-dialog.component.scss"]
    })
    export class ConfirmDialogComponent implements OnInit {
      title = "";
      content = "";
      constructor(
        private dialogRef: MatDialogRef<ConfirmDialogComponent>,
        @Inject(MAT_DIALOG_DATA) private data
      ) { }
    
      ngOnInit() {
        this.title = this.data.title;
        this.content = this.data.content;
      }
      onClick(result: boolean) {
        this.dialogRef.close(result);
      }
    }

    然后把ConfirmDialogComponent组件放在sharedModule中。

    import { NgModule } from "@angular/core";
    import { CommonModule } from "@angular/common";
    import { MaterialModule } from "../material/material.module";
    import { ConfirmDialogComponent } from "./confirm-dialog/confirm-dialog.component";
    
    @NgModule({
      imports: [CommonModule, MaterialModule],
      exports: [CommonModule, MaterialModule],
      declarations: [ConfirmDialogComponent],
      entryComponents: [ConfirmDialogComponent]
    })
    export class SharedModule { }

    如果使用ConfirmDialog,可参考删除project。 

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:https://www.cnblogs.com/starof/p/9069336.html  有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    查询多列数据时用这种方法查询
    当只需要查找一列数据的时候 用这种方法减少数据库的访问
    将从数据表中获得的枚举变量名称或者是控件名变成要使用的枚举变量
    枚举变量用法
    查询数据表行数 然后循环查找表 添加数据到ITEMS
    tbType和TypeList操作
    c#中动态创建textbox并且从数据库中获取表中数据添加到textbox中
    OpenCV
    lambda表达式
    技术术语
  • 原文地址:https://www.cnblogs.com/starof/p/9069336.html
Copyright © 2020-2023  润新知