問題タブ [angularjs-track-by]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1540 参照

angularjs - orderByとtrack byでng-repeatの要素を削除すると失敗します

ここにコードがあります

を削除するorderBy:'-modifiedDate'と、特定の要素の削除がうまく機能します。ただし、コレクション/配列を並べ替えてレンダリングする必要があるため、orderByがあります。

コードから を削除せずに、orderBy:'-modifiedDate'たとえば 7 番目のランダムな要素を削除すると、削除される要素は常に最後の要素になります。

上記の中にng-init別のものがあるので、使用する必要がありました。このように削除関数を呼び出します。ng-repeatng-repeatng-click="deleteRow(listIndex)"

0 投票する
1 に答える
315 参照

javascript - DOM は angular-selectize ng-repeat と track by で再構築され続けます

angular-selectizeモジュールで AngularJS を使用しています。

必要な要素をページに入力するには、次のようなものを使用します。

index.html

controller.js

を使っtrack by $indexても使わなくても、サーバーから取得したデータで配列を更新するたびに、更新後の配列の内容が同じであってもtrack by select.name、すべての要素が完全に再描画されます。<selectize></selectize>selects_data

自分で解決するためのレシピは見つかりませんでした。そして、それを内部または他の要素track byで使用すると、なぜ同じことが役立つのか理解できません。div

誰かが問題を解決してくれると本当にうれしいです!

0 投票する
1 に答える
238 参照

angularjs - angular ng-options track by deep cloneの問題を解決するには?

ng-options="branch as branch.name for branch in ordersItemClientInfo.branches track by branch.id"

私の場合、「ブランチ」はオブジェクトの配列であり、それぞれが非常に深いオブジェクト(マップgeoObject)へのフィールド参照を持っています。Angular はそのオブジェクトをコピーしようとして失敗します!

angular.js から:

コピーは必要ありません。元のオブジェクトを選択する必要があります。どうすれば作れますか?

0 投票する
4 に答える
100284 参照

angular - ngFor angular 2 内で track by を使用する方法

私が推測できるすべての構文を試してみましたが、うまくいきませんでした。

私のために働いた唯一のアプローチは

  1. コントローラ クラスでメソッドを作成する

    identify(index,post:Post){ return post.id }

これが唯一の方法ですか?trackBy のプロパティ名をインラインで指定するだけではダメですか?