バックエンドのgetTestメソッドに対してhttpリクエストを行っています。タータデータはシオマネキを使用してテストサーバーから返さ:httpのマッピング結果がnullのオブジェクトで返されます。
{
"number": "1a",
"testId": 1,
"testNumber": 5,
"testDate": "2016-05-20T00:00:00",
"assignedPupils": [],
"unAssignedPupils": []
}
何かが加入するかというと間違っている - ので、私は仮定 - .MAP機能ではなく、私はわかりません。マッピングをデバッグしようとすると、EditTestクラスには決して行きません:そして、エラーメッセージは、バインドされたhtmlのエラーを示しています。これは遅すぎます。私は 'テスト'オブジェクトが定義されていないことを知る必要があります!
誰もがこの問題を認識していますか?
export class EditTestComponent implements OnInit {
test: EditTest;
constructor(
private _testsService: TestsService,
private _routeParams: RouteParams)
{ }
ngOnInit() {
let id = this._routeParams.get('id');
this._testsService.getTest(id).subscribe(test => this.test = test.map(t => new EditTest(t)));
}
}
TestService.ts:
getTest(id) {
return this.http.get('api/tests/edit/' + id).map(res => res.json());
}
HTML:
<div>
<label>id: </label>{{test.id}}
<label>number: </label>{{test.number}}
<label>date: </label>{{test.date}}
</div>
私はこの例外を取得:
XCEPTION: TypeError: Cannot read property 'id' of undefined in [{{test.id}}
in [email protected]:27]
はい!本当に助けてくれました;-) .subscribe()のような非反応的な拡張を使って、なぜ同じエラーが角度1.xで起こったのか、自分自身に尋ねました。プロパティがアクセスされる前にヌルチェックを行う一般的な設定はありませんか? – Pascal
良い仕事はこれです: