ページを更新するためにNg2を取得できません。 私はCRUDシステムを持っているので、新しいエントリーを入力するときにページが更新されるのがうまくいけばいいです。この理由は、テーブルが{{ studentAssign.assID[0]._id }}
のようなコードエントリを使用して作成されているためですが、assIDの新しいエントリをサブミットすると、配列がstudentAssign._id
として結合されて空白のエントリが作成され、関数。Angular2リフレッシュページ
は機能
submitCreate(studentAssign) {
this.authHttp.post("/api/student-assignment/", JSON.stringify(studentAssign), this.options).subscribe(
res => {
this.studentAssigns.push(studentAssign); // the response contains the new item
this.sendInfoMsg("item added successfully.", "success");
// workaround to reset the form values
this.workaround = false;
setTimeout(() => this.workaround = true, 0);
},
err => console.log(err)
);
}
を作成マイIは、ページの更新を強制するために、多くの事を試してみました。私。 this.router.renavigate();
とthis.router.navigate(['/Student-Assign']);
とthis.zone.run(() => {});
... NgZoneのゾーン(コンポーネントの再レンダリング)は動作していません。
紛失しているものがありますか?または、ページをリフレッシュするのを避ける代わりに、 'assID'配列を作成するのは簡単ですか?
編集ngForコード私はマングースからそれを投入していてそれを配列にしてい
<tr *ngFor="let studentAssign of studentAssigns">
<td style="text-align:center;"><div tooltip="{{studentAssign.assID[0].assignName}}" tooltipPlacement="top" tooltipTrigger="mouseenter">{{ studentAssign.assID[0]._id }}</div></td>
<td style="text-align:center;"><div tooltip="Email: {{studentAssign.studentID[0].email}} Name: {{studentAssign.studentID[0].firstName}} {{studentAssign.studentID[0].lastName}}" tooltipPlacement="top" tooltipTrigger="mouseenter">{{ studentAssign.studentID[0]._id }}</div></td>
<td style="text-align: center;">
<button type="button" class="btn btn-warning btn-sm" (click)="toggleEdit(studentAssign)"><i class="fa fa-pencil"></i> Edit</button>
<button type="button" class="btn btn-danger btn-sm" (click)="submitRemove(studentAssign)"><i class="fa fa-trash"></i> Delete</button>
</td>
</tr>
、生のJSON:
{ "_id":3、 "__ V":0 、 "studentID":[{"_ id": "1240681"、 "メール": "[email protected]"、 "lastName": "Groves"、 "firstName": "Jakey"、 "__ v":0}] 、 "assID":[{"_ id": "As 1"、 "assignName": "Cwk"、 "__ v":1、 "modInsID":[13]}]}
なぜ動作しないのかわかりません。 Angular2の変更検出では、配列やオブジェクトの内容が変更されているかどうかはチェックされません。 '* ngFor'自体が配列内容の変更をチェックし、バインディングがある場合、Angular CDは変更があればこれらのバインディングをチェックします。したがって、必要や回避策やハックがあってはいけません。ブラウザのコンソールに何かエラーがありますか? –
次の返信明日は。ベッドの時間:O –
@GünterZöchbauerあなたの返信に感謝します...そしてコンソールにエラーはありません。そして、私はこのコードを '{{studentAssigns.length? studentAssigns.length:0}} '配列の量を増やすと、新しいエンティティを追加すると、それを' studentAssign.assID [0] ._id'として保存せず、それを 'studentAssign 'として保存します。 _id'は私が望むものではありませんが、 'studentAssign.assID [0] ._id'として保存するか、ページがリフレッシュされて配列が生成されるようにする必要があります。とにかく返信ありがとう:) –