我明白一個申報:Angular 2 - 什麼是可聲明的?
- 要麼是一個部件,指令或管
- 可以添加到一個模塊的
declarations
陣列 - 屬於一個,且僅一個模塊
但究竟是一個可申報的?一個服務類屬於一個模塊,那麼爲什麼服務類不是可聲明的?或者更一般地說,在模塊內部聲明什麼意思?
我明白一個申報:Angular 2 - 什麼是可聲明的?
declarations
陣列但究竟是一個可申報的?一個服務類屬於一個模塊,那麼爲什麼服務類不是可聲明的?或者更一般地說,在模塊內部聲明什麼意思?
declarations
使Angular知道選擇器和管道名稱。
編譯組件模板時,它在當前模塊和導入模塊的聲明中查找匹配的組件,指令和管道,以便將它們應用於選擇器和管道名稱匹配的元素。
聲明允許角度編譯器知道哪個模塊實際上將包含組件,指令或管道。
由於編譯器生成製作視圖的工廠,它會將這些組件與它們聲明的模塊進行集成,並且僅在可能使用它們的任何其他模塊中引用它們。
這就是爲什麼您只希望每個組件,管道和指令只能在最多一個模塊中聲明。
服務與其他服務放在一起,並根據需要由其他工具(如webpack)引用,或者在某些情況下由瀏覽器間接引用。角編譯器不需要編譯服務代碼,它只是將它們用作普通的JavaScript代碼。
編輯:指定服務不需要由角編譯器編譯。當然,如果它是打字稿,它仍然會被編譯,但是打字稿編譯器不是有角度的。