だから私はデータを消費しようとしているAPIを持っています。返されるデータ:
組織
baseId: 1
createdAt: "2018-11-14T04:35:35.345Z"
id: 1
isActive: true
orgName: "Test Organization 1"
orgOwner: 2
subscriptionCode: "testorg1"
updatedAt: "2018-11-14T04:35:35.34
ベース
bandwidthApiSecret: "xxxxxx"
bandwidthApiToken: "t-xxxxxx"
bandwidthUserId: "u-xxxxxx"
baseName: "Test AFB 1"
basePhoneNumber: "+18442367381"
createdAt: "2018-11-14T04:35:35.123Z"
id: 1
isActive: true
updatedAt: "2018-11-14T04:35:35.123Z"
私がやりたいことは理解できませんが、rxjs操作を使用して必要な場所に組織を挿入することです。そのため、ベースに 1 つ以上の組織がある場合は、ベースに挿入する必要があります。ここに私のインターフェースがあります:
ベース インターフェイス
import { Organization } from './organization';
import { BaseManager } from './base-manager';
export interface Base {
id: number;
basePhoneNumber: string;
baseName: string;
bandwidthUserId: string;
bandwidthApiToken: string;
bandwidthApiSecret: string;
createdAt?: Date;
updatedAt?: Date;
orgs?: Organization;
managers?: BaseManager;
}
組織インターフェース
export interface Organization {
id: number;
orgName: string;
orgOwner: string;
baseId: number;
subscriptionCode: string;
isActive: boolean;
createdAt: Date;
updatedAt: Date;
}
このJSBinは、私が達成する必要があることを行っているように見えます。主題の私の理解の欠如のために、私はそれを機能させることができません。これが私のAngularコンポーネントのスニペットです:
import { Component, OnInit } from '@angular/core';
import { Base } from 'src/app/core/interfaces/base';
import { BaseService } from 'src/app/core/services/base.service';
import { OrgService } from 'src/app/core/services/org.service';
import { Organization } from 'src/app/core/interfaces/organization';
import { switchMap } from 'rxjs/operators';
@Component({
selector: 'app-base-list',
templateUrl: './base-list.component.html',
styleUrls: ['./base-list.component.css']
})
export class BaseListComponent implements OnInit {
bases: Base[];
orgs: Organization[];
constructor(private baseService: BaseService, private orgService: OrgService) { }
ngOnInit() {
this.loadOrgs();
this.loadBases();
}
loadBases() {
this.baseService.getAllBases()
.subscribe(
res => {
this.bases = res['bases'];
console.log(this.bases);
}
);
}
// loadBases(): Base[] {
// this.baseService.getAllBases()
// .subscribe(
// res => {
// this.bases = res['bases'].pipe(
// switchMap( base => {
// return this.getOrg(base.id).map(
// base => {
// return Object.assign(base, {base, {org: this.orgs});
// }
// )
// })
// );
// });
// }
loadOrgs() {
this.orgService.getOrgs()
.subscribe(
res => {
this.orgs = res['orgs'];
console.log(this.orgs);
}
);
}
getOrg(baseId) {
this.bases.filter(base => base.id === baseId);
}
}
この問題に関するヘルプは大歓迎です。
乾杯、
コーチ