0

HTMLを使用し二回目の呼び出しされていません。変更ボタンをクリックすると、行コレクションが変更され、ng-initが再び呼び出されません。両方の時間を呼び出して$indexng-initによってトラックを削除する場合。 $indexでトラックを使用すると、1回だけ呼び出されました。それはどうしてそうですか?これについての任意のアイデア。

答えて

1

track by $indexを使用すると、時計はdata itemcollectionにはindexであり、uidではありません。

  1. not track by、この場合、

    たびcollection is updatedngRepeatは、コレクションにdata itemためnew uidを作成します。 ngRepeatは、すべての要素をnew uidsre-rendersと見なします。この場合

  2. track by,($index)

    ngRepeatは、コレクション内のデータ項目のindex as uidを使用します。 ngRepeatにはnew uidsが表示されないため、no re-renderingの要素(追加または削除する場合は、no rendering of others)が表示されません。 (watchは、データ上に保存されるので、updatedを取得していないだろうが、何のレンダリング)

+0

OPのボタンのクリックで新しいオブジェクトを作成し、 '$ scope.rows = [{ID:1、名前: 'ラヴィ'}、{ id:2、名前: 'raj'}] ' $ indexはどこに保管されていますか? –

+0

ngRepeatのtrackByIdFnは、コレクション内のアイテムのインデックスを使用し、このインデックスは継承スコープに与えられます。 – ram1993

+0

はい、あなたは正しいです –

関連する問題