注入服务与public和private有什么区别。我看到大多数示例在angular组件中使用private关键字。它会有任何影响使用公共? 例如Typescript依赖注入公有vs私有
constructor(public carService: CarService) { }
与
constructor(private carService: CarService) { }
注入服务与public和private有什么区别。我看到大多数示例在angular组件中使用private关键字。它会有任何影响使用公共? 例如Typescript依赖注入公有vs私有
constructor(public carService: CarService) { }
与
constructor(private carService: CarService) { }
除了之前的答案......任何标记为私人的东西都不能由组件的模板访问。 (私有成员可以使用JIT时,如在开发时使用AOT时,访问的,但不是如用于生产。)
所以在你的模板,你只能做*ngIf='carService.isValid'
如果注入的服务是标记为public
。
但实际上,最好的做法是将任何服务属性/方法都包含在组件属性/方法中,并将模板绑定到/调用组件的属性或方法。
事情是这样的:
get isValid(): boolean {
return this.carService.isValid;
}
,然后访问它像这样:*ngIf='isValid'
答案很简单:你有,当你不需要使用它们当前类/组件的外面创建私有变量,否则,您应该创建公共变量。