Han*_*Che 2 angular2-services angular
所以我知道你可以让两个不相关的组件通过服务相互通信,让一个组件在服务中发出一个事件,另一个组件在服务中订阅它.
我的问题:
服务可以直接调用组件中的函数吗?
Gün*_*uer 12
不是默认的.服务是类的实例,仅此而已.
@Injectable()
class MyService {
}
@Component({
selector: 'my-component',
...
)}
class MyComponent {
constructor(private myService:MyService) {}
}
@NgModule({
providers: [MyService],
...
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
这样MyService就传递了service()实例,MyComponent但就是这样.服务实例不了解MyComponent.
您可能想要的是添加一个Observable服务并在您的组件中订阅它.
@Component({
selector: 'my-component',
...
)}
class MyComponent {
constructor(myService:MyService) {
myService.someObservable.subscribe(value => doSomething(value));
}
doSomething(value) {
console.debug(value);
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当Observable someObservable发出另一个值时,服务"调用"组件上的方法.
有关更多详细信息,请参阅检测组件输入的嵌套属性的更改
| 归档时间: |
|
| 查看次数: |
20111 次 |
| 最近记录: |