【发布时间】:2019-11-22 22:33:53
【问题描述】:
我想知道在组件中访问数据的正确方法是什么。我已经读过几次了,您应该让 Angular 模板处理订阅但是您将如何访问 component.ts 文件中某些方法的当前值?
假设我有以下组件:
@Component({...})
class TestComponent {
testData: Observable<TestData>
ngOnInit(){
this.testData = this.service.getData().pipe(share())
}
}
它有一个sendDataABCProperty,它将我们的 testData 的属性ABC 发送到某个任意服务。
sendDataABCProperty() {
this.testData.pipe(first()).subscribe(data => this.service.sendData(data.abc))
}
现在,当使用上述方法时,我仍然必须订阅我的数据,这正是我试图阻止的。
另一种方法是复制数据而不使用流,但由于我试图使其更具反应性,这是我想避免的一种方式。
另一个例子是某种“显示和编辑”组件。
假设我从某个服务获取我的显示数据,然后我访问该服务以更新数据。但我需要(数据的)id。访问 id 的最佳方式是什么?在开头复制它(使用tap() / subscribe())?使用BehaviorSubject?还是完全不同的东西?
【问题讨论】:
-
可以给我们介绍一下服务方法吗?
-
如果不想订阅,可以使用tap()操作符代替
subscribe()。 -
服务应该无关紧要。敲击技巧也没有,因为我仍然需要在某个地方订阅。我正在尝试改写它。
标签: angular rxjs reactive-programming