2017-04-24 44 views
0

我有一個關於Angular的項目。我知道我需要在應用程序的更高層次上聲明每個模塊都具有很多功能,並且它將在我所有的組件和子模塊上可用。但是我有一個指令的特例。我做了一個簡單的指令,並將其導入我的app.module.ts指令聲明

我做了這個圖以便更好地理解:

enter image description here

我想用這個指令是另一模塊的一部分組件上(該模塊宣佈我app.module.ts太)。所以我把我的指令放在這個組件上,它不起作用。但是,如果我將導入移動到這個子模塊,然後工作。

我可以在更高級別的模塊上聲明什麼東西,以及哪些東西不應該?

回答

3

Angular模塊提供模板解析。與在Angular模塊中聲明的組件關聯的模板使用的任何嵌套組件,指令或管道也必須聲明或導入到該Angular模塊中。

您可以使用共享模塊共享組件,指令和管道。

看到這部影片的詳細信息,模板的分辨率和共享的模塊:https://www.youtube.com/watch?v=ntJ-P-Cvo7o&t=4s

+0

您的演示文稿是如此驚人!我本來想去那裏!我的理解是關於模塊的繼承。我一直在想,如果我在頂層模塊上聲明瞭一個服務,它將在已經退役的應用程序上可用。根據你的介紹,這是真實的。我不應該在不同的模塊上聲明服務。和指令?適用於服務的相同方式,對嗎?擁有共享模塊的概念非常好。非常感謝您爲此付出了時間。 我很感激。 –

+0

非常感謝!在模塊級聲明的服務可用於應用程序中的所有組件。指令被聲明或導入到一個特定模塊中,並且僅可用於該模塊中聲明的組件。希望這可以幫助! – DeborahK