W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
創(chuàng)建共享模塊能讓你更好地組織和梳理代碼。你可以把常用的指令、管道和組件放進一個模塊中,然后在應用中其它需要這些的地方導入該模塊。
想象某個應用有下列模塊:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CustomerComponent } from './customer.component';
import { NewItemDirective } from './new-item.directive';
import { OrdersPipe } from './orders.pipe';
@NgModule({
imports: [ CommonModule ],
declarations: [ CustomerComponent, NewItemDirective, OrdersPipe ],
exports: [ CustomerComponent, NewItemDirective, OrdersPipe,
CommonModule, FormsModule ]
})
export class SharedModule { }
請注意以下幾點:
CommonModule
,因為該模塊需要一些常用指令。
-它重新導出了 CommonModule
和 FormsModule
。
通過重新導出 CommonModule
和 FormsModule
,任何導入了這個 SharedModule
的其它模塊,就都可以訪問來自 CommonModule
的 NgIf
和 NgFor
等指令了,也可以綁定到來自 FormsModule
中的 [(ngModel
)] 的屬性了。
即使 SharedModule
中聲明的組件沒有綁定過 [(ngModel
)],而且 SharedModule
也不需要導入 FormsModule
,SharedModule
仍然可以導出 FormsModule
,而不必把它列在 imports
中。 這種方式下,你可以讓其它模塊也能訪問 FormsModule
,而不用直接在自己的 @NgModule 裝飾器中導入它。
在使用來自其它模塊的組件和來自其它模塊的服務(wù)時,有一個很重要的區(qū)別。 當你要使用指令、管道和組件時,導入那些模塊就可以了。而導入帶有服務(wù)的模塊意味著你會擁有那個服務(wù)的一個新實例,這通常不會是你想要的結(jié)果(你通常會想取到現(xiàn)存的服務(wù))。使用模塊導入來控制服務(wù)的實例化。
獲取共享服務(wù)的最常見方式是通過 Angular 的依賴注入系統(tǒng),而不是模塊系統(tǒng)(導入模塊將導致創(chuàng)建新的服務(wù)實例,那不是典型的用法)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: