2
A
回答
9
不是默認情況下。服務是一個類的實例,僅此而已。
@Injectable()
class MyService {
}
@Component({
selector: 'my-component',
...
)}
class MyComponent {
constructor(private myService:MyService) {}
}
@NgModule({
providers: [MyService],
...
})
export class AppModule {}
這樣一個服務(MyService
)實例被傳遞給MyComponent
但僅此而已。服務實例不知道MyComponent
。
您可能想要的是將Observable
添加到您的服務中並在您的組件中訂閱它。
@Component({
selector: 'my-component',
...
)}
class MyComponent {
constructor(myService:MyService) {
myService.someObservable.subscribe(value => doSomething(value));
}
doSomething(value) {
console.debug(value);
}
}
這種方式,服務「呼叫」的部件上的方法中,當Observable
someObservable
發出另一個值。
欲瞭解更多詳情,請參閱detect change of nested property for component input
0
上面的答案是,只是你不引導你的服務是正確的,你會在你的app.module陣列供應商添加爲您服務。
@NgModule({
declarations: [MyComponent],
imports: [],
providers: [MyService],
bootstrap: [AppComponent]
})
然後你注入你的服務組件
import { Component } from '@angular/core'
import { MyService } from './path/to/my.service'
...
export class MyComponent {
constructor(private myService:MyService){}
}
相關問題
- 1. 多次調用角度服務功能
- 2. 服務功能的角度應用
- 3. 如何調用頁面加載角度服務的功能
- 4. 服務功能內的角度呼叫服務功能,對此不起作用
- 5. 如何從角度應用中的服務調用控制器中的功能
- 6. 錯誤:不是功能 - 角度服務
- 7. 組件角中的呼叫服務功能
- 8. 從共享服務中調用組件的功能
- 9. 我應該如何與非角度碼共享角度服務中的功能?
- 10. 無法從另一個組件調用組件的角度2服務
- 11. TypeScript服務中的角度功能未定義或未定義
- 12. 從角度服務到組件陣列
- 13. 角度4功能,調用路由
- 14. mapDispatchToProps並直接調用組件中的調度功能
- 15. 功能的角度服務中不被視爲一個功能(再次)
- 16. 組件,服務等的角度2服務注入
- 17. 角2發送回調服務組件
- 18. 角2如何導入自定義功能組件和服務
- 19. 功能的角度
- 20. 正在以角度調用服務到另一個服務中
- 21. 無法在角度js控制器中調用插件功能
- 22. 在Jasmine測試中無法訪問角度服務功能
- 23. 全局調用角度服務
- 24. 如何調用來自控制器功能角度JS以服務
- 25. 我如何嘲笑的角度服務的功能茉莉花
- 26. 如何解決功能和角度調用其他功能
- 27. 帶參數和成功回調的角度服務工廠
- 28. 有角度的打字稿傳遞服務功能
- 29. 訪問來自角度服務的第三方JS功能
- 30. 角度:使用可重用服務的許多組件
裏面如果你在你的服務的組件,確保一個參考。但我不會推薦兩個相互指稱的類。 –
所以基本上事件拋出和訂閱方法是最佳實踐? –
Definetely。你可以用觀察者來做到這一點。你想保持它分離,以保持分離的擔憂。 Günter的答案似乎是正確的。 –