ng-options
Angular 1.3 を使用する場合の trackexpr (track by) の目的は何ですか?
Angular 1.2 では、この式value=""
は生成されたオプションの式を変更して、コレクション内の各アイテムの trackexpr の結果と一致させました。これは、この jsfiddle: http://jsfiddle.net/3fzkym3m/によると、Angular 1.3 には当てはまりません。現在、オプションには増分値があります。
Angular 1.2 では、生成されたオプション リストは次のとおりです。
<select ng-options="item.text for item in data track by item.value" ng-model="selectedItem" class="ng-pristine ng-valid">
<option value="" class=""> - Select item - </option>
<option value="4">item1</option>
<option value="12">item2</option>
<option value="11">item3</option>
<option value="19">item4</option>
<option value="17">item5</option>
<option value="26">item6</option>
</select>
Angular 1.3 では、生成されたオプション リストは次のとおりです。
<select ng-options="item.text for item in data track by item.value" ng-model="selectedItem" class="ng-pristine ng-untouched ng-valid">
<option value="" class=""> - Select item - </option>
<option value="0">item1</option>
<option value="1">item2</option>
<option value="2">item3</option>
<option value="3">item4</option>
<option value="4">item5</option>
<option value="5">item6</option>
</select>
ソース コレクションと選択されたアイテムの間でオブジェクトを照合するために、Angular はまだトラック バイを使用していますか? これを行うことによるパフォーマンス上の利点はまだありますか? Angular 1.2 と 1.3 の間でこれが変更されたのはなぜですか?