[英]Angular 2 Setter and Getter
我正在嘗試創建一個服務來將數據解析到不同路由上的不同組件。
如果我在同一個組件上調用follow服務,我會得到我需要的結果,但如果我嘗試從另一個組件獲取設置結果,則服務返回undefined。
這是我的服務: -
import {Injectable} from '@angular/core';
@Injectable()
export class TestService {
public _test:any;
set test(value:any) {
this._test = value
}
get test():any {
return this._test;
}
}
我設置的服務如下: -
this.testService.test = 3;
我使用以下內容在組件中收到服務數據: -
console.log(this.testService.test)
如前所述,如果我在同一個組件內進行通信,那么這個工作絕對沒問題,我有相同的導入,提供者和構造函數。
另外,請注意組件是兄弟組件
是否有人能夠幫助或指出我正確的方向,我們將非常感激。
如果您需要任何額外的代碼,請告訴我。
如果要跨不是父組件的子組件的組件共享服務,則需要在模塊中注冊服務,而不是在組件中注冊。 在組件中注冊服務時,它僅對該組件及其子組件可用。
像這樣的東西:
@NgModule({
declarations: [
AppComponent,
ProductListComponent,
StarComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [ TestService ],
bootstrap: [AppComponent]
})
export class AppModule { }
如果您嘗試在來自不同模塊的兩個組件之間進行交互,那么您必須將服務導入到app模塊(即主模塊)中,這樣get方法就不會返回
嘗試在Component.ts中的構造函數內部初始化testService var,如果未定義的var是“testService”,則可以工作。
constructor (private testService : TestService ){
//at this time testService its already initialized.
console.log(this.testService.test);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.