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 { }
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 有问题欢迎与我讨论,共同进步。
Angular项目中共享模块的实现的更多相关文章
- Angular项目中核心模块core Module只加载一次的实现
核心模块CoreModule在整个系统中只加载一次,如何实现? 创建core Modele:ng g m core 既然CoreModule是类,就有构造函数,在构造函数中进行依赖注入. export ...
- angular项目中各个文件的作用
原文地址 https://www.jianshu.com/p/176ea79a7101 大纲 1.对angular项目中的一些文件的概述 2.对其中一些文件的详细描述 2.1.package.json ...
- Angular 项目中如何使用 ECharts
在有些使用 ECharts 库的 Angular 项目中,通常除了安装 npm 包之外,还会在 angular.json 中配置 “build.options.scripts”,将 “node_mod ...
- gulp 在 angular 项目中的使用
gulp 在 angular 项目中的使用 keyword:gulp,angularjs,ng,ngAnnotate,jshint,gulpfile 最后附完整简洁的ng项目gulpfile.js 准 ...
- angular项目中遇到的问题
一.angular项目中如何实现路由缓存 需要实现的效果,对请求的数据进行缓存,比如进入文章详情页之后点击返回,不会再调用后台数据接口:而是加载缓存中的数据,如何数据变动的情况下,可使用下拉刷新刷新页 ...
- VS Code项目中共享自定义的代码片段方案
VS Code项目中共享自定义的代码片段方案 一.问题背景 项目中注释风格不统一,如何统一注释风格 一些第三方组件库名称太长,每次使用都需要找文档,然后复制粘贴 部分组件库有自己的Snippets插件 ...
- angular项目中使用Primeng
1.第一步把依赖添加到项目中 npm install primeng --save npm install @angular/animations --save npm install font-aw ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.5——在项目中共享配置
问题: 取出多个模块下相同的配置 解决方案: 在顶级gradle配置文件里面使用allprojects或者subprojects块 讨论: 当你在android studio中新建android项目时 ...
- Angular项目中引入jQuery
npm install --save jquery npm install @types/jquery --save 在对应的组件中引入 import * as $ from "jquery ...
随机推荐
- Python——Flask框架——程序的结构
一.项目结构 |-flasky |-app Flask程序一般都保存在这里 |-templates/ |-static/ |main/ |-__init__.py |-errors.py |-form ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- re 模块 分组特别说明
关于分组优先以及 " | " 的细致练习 from django.test import TestCase import re # Create your tests here. ...
- Souvenir Shop 解题报告
Souvenir Shop 魔幻题目,这谁搞得到啊... 考场上完全sb了写了个线段树合并,想必我是个复杂度分析都没学过的入门级选手 发现这个网格图dag它的出度最多只有2 如果按照先走朝上的一条边进 ...
- BZOJ2870 最长道路
题意:给定树,有点权.求一条路径使得最小点权 * 总点数最大.只需输出这个最大值.5w. 解:树上路径问题,点分治. 考虑合并两个子树的时候,答案的形式是val1 * (d1 + d2),当1是新插入 ...
- Java基础 -- 访问控制权限
一 包:库单元 假设我们存在两个类名相同的类,如果没有一定的措施对其进行区分,就会无法区别到底使用的是哪一个类.因此java引入了包来进行名字空间管理. 包(类库)包含有一组类,这些类在单一的名字空 ...
- ES6部分知识点总结
注:本文通过yck前端面试小册学习整理而得,记录下来供自己查阅 1.var 变量提升 使用var声明的变量,声明会被提升到作用域的顶部 举几个例子: eg1: console.log(a) // un ...
- mysql 单列无重复
ALTER TABLE jeesite.bb_bill ADD UNIQUE (object_id);
- kafka 基础知识梳理及集群环境部署记录
一.kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特 ...
- 老男孩Python全栈学习 S9 日常作业 004
1.写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry&q ...