我尝试创建自己的模块,并在下面的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
`
My credit card module is like below:-
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 {}
我的app模块如下: -
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
我该怎么出口?
不要导出以下内容:
-
仅在此模块中声明的组件中需要的专用组件,指令和管道 . 如果你没有_t83690_吨导出它 .
-
不可声明的对象,例如服务,函数,配置和实体模型 .
-
仅由路由器或引导动态加载的组件 . 这样的输入组件永远不能在另一个组件中选择's template. While there'导出它们没有坏处,也没有任何好处 .
-
纯粹的服务模块在重新导出HttpModule方面没有意义,因为它不是唯一的目的是将http服务提供者作为一个整体添加到应用程序中 .
但我不清楚 .
提前致谢 .
1 回答
我强烈建议你阅读这篇文章:
以下是它的引用:
重要的是要理解的是,没有服务封装,所以不要导入或导出它们 .
没有私人模块这样的东西 . 但是,如上所述,您可以通过简单地不导出它来使声明类型对该模块是私有的 . 例如:
AComponent is public since it's exported
AComponent is private since it's not exported