【发布时间】:2018-04-07 16:35:04
【问题描述】:
我尝试创建自己的模块并像下面的 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
我不应该导出什么?
不要导出以下内容:
- 仅在此模块中声明的组件中需要的私有组件、指令和管道。如果您不想让其他模块看到它,请不要导出它。
- 不可声明的对象,例如服务、函数、配置和实体模型。
- 仅由路由器或引导程序动态加载的组件。这样的入口组件永远不能在另一个组件的模板中被选中。虽然出口它们没有坏处,但也没有任何好处。
- 没有公共(导出)声明的纯服务模块。例如,重新导出 HttpModule 没有任何意义,因为它不会导出任何内容。它的唯一目的是将 http 服务提供者添加到整个应用程序中。
但我不清楚。
提前致谢。
【问题讨论】:
标签: javascript angular