我尝试创建自己的模块并将其导入,如下面的app模块中那样。
下面的代码很好,但我想展示一个例子然后 提出我的问题。
假设我的文件夹结构如下: - `
├── app
│ ├── app.component.ts
│ └── app.module.ts
├── credit-card
│ ├── credit-card-mask.pipe.ts
│ ├── credit-card.component.ts
│ ├── credit-card.module.ts
│ └── credit-card.service.ts
├── index.html
└── main.ts
`
我的信用卡模块如下:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CreditCardMaskPipe } from './credit-card-mask.pipe';
import { CreditCardService } from './credit-card.service';
import { CreditCardComponent } from './credit-card.component';
@NgModule({
imports: [CommonModule],
declarations: [
CreditCardMaskPipe,
CreditCardComponent
],
providers: [CreditCardService],
exports: [CreditCardComponent]
})
export class CreditCardModule {}

我的应用模块如下: -
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CreditCardModule } from '../credit-card/credit-card.module';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
CreditCardModule
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule { }

我试图通过互联网搜索在Angular2中创建私有模块但没有相关信息。
与上面的模块不同,我现在需要在我的应用程序中实现一个私有模块。
假设我希望我的信用卡模块是私有的,那么通过删除课前的导出词,CreditCardModule就足以使我的模块变为私有?
让我知道我是对还是错。或者还有其他任何方式,以便我的应用程序可以在angular2应用程序中拥有私有模块吗?
另外,我引用了页面https://angular.io/guide/ngmodule-faq
我不应该导出什么?
不要导出以下内容:
但我不清楚。
提前致谢。
答案 0 :(得分:3)
我强烈建议您阅读这篇文章:
以下是它的引用:
Angular以某种方式介绍了模块封装的概念 类似于ES模块。它基本上意味着可以声明 类型 - 组件,指令和管道 - 只能用于 在此模块中声明的组件。
重要的是要理解的是,服务没有封装,因此您不能导入或导出它们。
与上面的模块不同,我现在需要在我的模块中实现一个私有模块 应用
没有私人模块这样的东西。但是,如上所述,您可以通过简单地不导出它来使声明类型对该模块是私有的。例如:
AComponent
已公开,因为它已导出
@NgModule({
...
declarations: [AComponent],
exports: [AComponent]
})
export class AModule { }
AComponent
是私有的,因为它未导出
@NgModule({
...
declarations: [AComponent]
})
export class AModule { }