2017-10-05 126 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

答案很簡單:你有,當你不需要使用它們當前類/組件的外面創建私有變量,否則,您應該創建公共變量。