コードに問題があるため、アイテムの詳細を表示する必要があります。これらの詳細は ws から取得します。ws ID に投稿すると、ws から詳細が返されます。私はこのコードを試しました:
populateFormAlarm() {
this.route.params.subscribe(
params => {
console.log('params',params) //show id correctly
this.as.AlarmGetById(params['id']).subscribe(
alarm => {
console.log('alarm',alarm) // ID is undefined
this.alarm = alarm;
}
);
}
);
}
Service.ts
public AlarmGetById(id: string): Observable<Alarm> {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let urlSearchParams = new URLSearchParams();
urlSearchParams.append('id', id);
urlSearchParams.append('unique', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9');
let body = urlSearchParams.toString();
console.log('body', urlSearchParams.toString())
return this.http.post(Api.getUrl(Api.URLS.AlarmGetById), body, {
headers: headers
})
.pipe(map((response: Response) => {
let res = response.json();
if (res.StatusCode === 1) {
} else {
return new Alarm(res.StatusDescription[0]);
}
}));
}
私のパラメータの結果: console.log('params',params) //ID を正しく表示
JS: params {
JS: "id": "5"
JS: }
私の完全なエラー:
ERROR TypeError: Cannot read property 'id' of undefined
JS: ERROR CONTEXT {
JS: "view": {
JS: "def": {
JS: "nodeFlags": 33603585,
JS: "rootNodeFlags": 33554433,
JS: "nodeMatchedQueries": 0,
JS: "flags": 0,
JS: "nodes": [
JS: {
JS: "nodeIndex": 0,
JS: "parent": null,
JS: "renderParent": null,
JS: "bindingIndex": 0,
JS: "outputIndex": 0,
JS: "checkIndex": 0,
JS: "flags": 33554433,
JS: "childFlags": 49152,
JS: "directChildFlags": 49152,
JS: "childMatchedQueries": 0,
JS: "matchedQueries": {},
JS: "matchedQueryIds": 0,
JS: "references": {},
JS: "ngContentIndex": null,
JS: "childCount": 1,
JS: "bindings": [],
JS: "bindingFlags": 0,
JS: "outputs": [],
JS: "element": {
JS: "ns": "",
JS: "name": "ActionBar",
JS: "attrs": [
JS: [
JS: "",
JS: "class",
JS: "action-bar"
JS: ],
JS: [
JS: "",
JS: "title",
JS: "Details"
JS: ]
JS: ...
params
このコードで正しく使用したことを教えてください。
このコードは Web アプリで使用したもので、うまく機能します。この問題を解決する方法を教えてください。ありがとうございました。