通常、これはリアルタイムで更新されると思われますが、そうではないようです。角2 - 更新*データが変更された後のテーブルng
var myArray= [{id:"name1",array:{"id1", "id2"}]
そして、私のhtmlで、私は行のmyArray
<table *ngFor="item in myArray">
<td>{{item.id}}</td>
<td>{{item.array}}</td>
</table>
内のすべての項目を一覧表示し、テーブルを持っている:私の角度のアプリでは、私は、文字列などのような別の配列を格納する配列を持っています
array
の項目は、ボタンのクリックにバインドされた機能で追加されます。したがって、ユーザーはアイテムのリストから選択し、ボタンをクリックし、それらの選択肢はarray
にプッシュされます。彼らはまた戻ってそれらのアイテムのいくつかを削除することができるので、私はmyArray
のすべてのアイテムのチェックを処理するコードを追加していて、そのarray
に削除されたアイテムが含まれている場合は削除されます。
for(let i=0; i<myArray.length;i++) {
let row:any = myArray[i];
for(let k=0; k<row.array.length;k++) {
if(row.array[k] == deletedItem) {
row.array.splice(index, 1);
}
}
}
コードは、私がdeletedItem
が(混乱変数名のために残念!)myArray
さんarray
の任意の項目から削除されていることを見ることができる午前コンソールログを使用して、動作します。ただし、コンソールに送信または印刷するときにmyArray
に表示されていても、更新された値はテーブルに反映されません。テーブルをリフレッシュする必要がありますか?データがバインドされているので、自動的に更新する必要があります。
それはもちろん、ないという理由だけで、変数名の紛らわしいですが、彼らがあなたのコードで何を表しているかは明らかではないので。例えば、 'index'&' deletedItem'です。複製を作成するか、誰かがそれをデバッグするのに十分な情報を与えてください。また、 'myArray'内の' array'プロパティは 'array'ではなく' object'として定義されているようです。 'row.array.length'の' length'を意図した方法で計算していますか? – amal
@amal私は削除コードをデモしようとしています。削除コードが動作していても(コンソールログで確認されていても)、テーブルは更新されません。何らかの形でテーブルを更新する必要があるのかどうか疑問に思っています – user3334871
この割り当てを明確にしてください: 'var myArray = [{id:" name1 "、array:{" id1 "、" id2 "}]'? '}' – amal