概要:Angular2/4 - データの配列を作成するには、サービスを介して、複数のコンポーネント間で共有することが
私は、ユーザーがさまざまな検索基準に基づいて、1つ以上の従業員を選択することを可能にするUIを持っています。彼らが選択すると、選択した従業員を共有サービス内の配列に格納する必要があります。
これらのデータのいずれかがサーバーに送信される前に、従業員を追加したり、アレイ内に存在するものを削除したりすることで、アレイを変更できます。
この共有サービスでは、データの配列を作成して購読する必要があります。
私のアプローチ:
私の最初のアプローチは、私がnext
を呼び出し、必要なときに沿ってデータを渡すことができるようにBehaviorSubject
を使用することでした。これは問題になりました。なぜなら、格納された/選択されたすべてのユーザーを表示する方法がなく、最後のユーザーのみがBehaviorSubject
を通過したからです。
擬コード:
shared.service.ts
public selectedUsers = []; //<- How do I store stuff in here?
private selectedUsersSub = new BehaviorSubject<any>(null);
selectedUsers$ = this.selectedUsersSub.asObservable();
setSelectedUsers(data) {
this.selectedUsersSub.next(data);
}
get selectedUsers(){
return this.selectedUsers;
}
component.ts:
this._reqService.selectedUsers$.subscribe(
data => {
if (data) {
console.log('Observable Stream', data)
}
}
)
ここでの私の目標は私を保存できるようにすることですこの内の選択した従業員selectedUsers
アレイ。私の他のコンポーネントは、現在の値がselectedUsers
で常に最新のものになるように購読できる必要があります。
また、最後の値だけでなく、いつでも選択したユーザーの現在の配列にアクセスできる必要があります。
[Angular2でサービスを使用して2つのコンポーネント間で配列を共有するのに最適な方法は?](https://stackoverflow.com/questions/42726109/best-way-to-share-an-array-between- 2つの構成要素を使用して角度を合わせてサービスを提供する2) –