問題タブ [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.
angularjs - orderByとtrack byでng-repeatの要素を削除すると失敗します
ここにコードがあります
を削除するorderBy:'-modifiedDate'
と、特定の要素の削除がうまく機能します。ただし、コレクション/配列を並べ替えてレンダリングする必要があるため、orderByがあります。
コードから を削除せずに、orderBy:'-modifiedDate'
たとえば 7 番目のランダムな要素を削除すると、削除される要素は常に最後の要素になります。
上記の中にng-init
別のものがあるので、使用する必要がありました。このように削除関数を呼び出します。ng-repeat
ng-repeat
ng-click="deleteRow(listIndex)"
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
誰かが問題を解決してくれると本当にうれしいです!
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 から:
コピーは必要ありません。元のオブジェクトを選択する必要があります。どうすれば作れますか?
angular - ngFor angular 2 内で track by を使用する方法
私が推測できるすべての構文を試してみましたが、うまくいきませんでした。
私のために働いた唯一のアプローチは
コントローラ クラスでメソッドを作成する
identify(index,post:Post){ return post.id }
と
これが唯一の方法ですか?trackBy のプロパティ名をインラインで指定するだけではダメですか?