2017-10-05 111 views
1

注入服务与public和private有什么区别。我看到大多数示例在angular组件中使用private关键字。它会有任何影响使用公共? 例如Typescript依赖注入公有vs私有

constructor(public carService: CarService) { } 

constructor(private carService: CarService) { } 

回答

4

除了之前的答案......任何标记为私人的东西都不能由组件的模板访问。 (私有成员可以使用JIT时,如在开发时使用AOT时,访问的,但不是如用于生产。)

所以在你的模板,你只能做*ngIf='carService.isValid' 如果注入的服务是标记为public

但实际上,最好的做法是将任何服务属性/方法都包含在组件属性/方法中,并将模板绑定到/调用组件的属性或方法。

事情是这样的:

get isValid(): boolean { 
     return this.carService.isValid; 
    } 

,然后访问它像这样:*ngIf='isValid'

1

答案很简单:你有,当你不需要使用它们当前类/组件的外面创建私有变量,否则,您应该创建公共变量。