からメソッドにアクセスすることはできません。残念ながら、これは動作していません。は、私は次のモデルを持っているモデル
私はのような何かを行う場合は、次のthis.events
はタイプEventLogModel[]
である
for (let ec of this.events[0].getEventConsumers()) {
console.log(ec.getStatus());
}
を。 ec.getStatus is not a function
というエラーが表示されます。
this.events
を取り込むための私のサービスは次のようになります。
public getEvents(batchId: string): Observable<EventLogModel[]> {
return this.http.get(EVENTS_URL + batchId + EVENTS_ENDPOINT)
.map((res: Response) => {
const events = res.json().eventList;
return events.map((e) => new EventLogModel(e));
})
.catch(this.handleErrorObservable);
}
と、典型的なJSON応答は次のようになります。
"batchId": "2c9180855f359542015f35aa2d460d74",
"status": "REJECTED",
"createdTime": "2017-10-19T17:24:26Z",
"eventList": [
{
"unique_id": 200168014,
"id": "12091792-9020-4311-8bad-44fa8b69d218",
"event_type": "com.adp.pi.eventmachine.PayFileProcessingCompleted",
"partition_key": "2c9180855f359542015f35aa2d460d74",
"occurred_on": "2017-10-19T17:24:26",
"trace_id": "-8551048985939099152",
"event_version": "1",
"producedDomain": "PAY_FILE_STATUS",
"eventConsumers": [
{
"status": "COMPLETED",
"listener": "com.clientmanagement.hr.presentation.event.PayFileProcessingCompletedEventHandler",
"consumedOn": "2017-10-19T17:24:27",
"consumedDomain": "POLICY"
}
],
"consumedOn": "2017-10-19T17:24:27"
}
]
}
私が間違ってやっている任意のアイデア?私は最終的にバインディングでHTMLのgetStatus()
関数を使用できるようにしたいと思います。
編集:これは決してEventConsumerModel
を作成していないようです。私はそのモデルのコンストラクタにconsole.log()
を入れて何も出てこなかった。私のサービスのオブジェクトをどのようにマッピングしているかと関係があります。しかし、私はそれを修正する方法を知らない。
:
だから、明示的
eventConsumers
のメンバ変数を設定する必要がありますか? – Nxt3レスポンスタイプを知っているだけで、それを持つことは重要ではありません。あなたはそれを省略することができます – cyrix
どのようにインターフェイスなしでそれを書くだろうか?あなたは単に 'EventLogResponse = {}'を 'Object = {}'に変更することはできません。 – Nxt3