我明白一个申报:Angular 2 - 什么是可声明的?
- 要么是一个部件,指令或管
- 可以添加到一个模块的
declarations
阵列 - 属于一个,且仅一个模块
但究竟是一个可申报的?一个服务类属于一个模块,那么为什么服务类不是可声明的?或者更一般地说,在模块内部声明什么意思?
我明白一个申报:Angular 2 - 什么是可声明的?
declarations
阵列但究竟是一个可申报的?一个服务类属于一个模块,那么为什么服务类不是可声明的?或者更一般地说,在模块内部声明什么意思?
declarations
使Angular知道选择器和管道名称。
编译组件模板时,它在当前模块和导入模块的声明中查找匹配的组件,指令和管道,以便将它们应用于选择器和管道名称匹配的元素。
声明允许角度编译器知道哪个模块实际上将包含组件,指令或管道。
由于编译器生成制作视图的工厂,它会将这些组件与它们声明的模块进行集成,并且仅在可能使用它们的任何其他模块中引用它们。
这就是为什么您只希望每个组件,管道和指令只能在最多一个模块中声明。
服务与其他服务放在一起,并根据需要由其他工具(如webpack)引用,或者在某些情况下由浏览器间接引用。角编译器不需要编译服务代码,它只是将它们用作普通的JavaScript代码。
编辑:指定服务不需要由角编译器编译。当然,如果它是打字稿,它仍然会被编译,但是打字稿编译器不是有角度的。