注入服務與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'
答案很簡單:你有,當你不需要使用它們當前類/組件的外面創建私有變量,否則,您應該創建公共變量。