2014-11-07 2 views
4

Какова цель trackexpr (track by) в ng-options при использовании Angular 1.3?Какова цель «track by» на «ng-options»

В Angular 1.2 это выражение изменило выражения value="" на сгенерированные параметры, чтобы соответствовать результату trackexpr для каждого элемента коллекции. Это больше не относится к Angular 1.3, за этот jsfiddle: http://jsfiddle.net/3fzkym3m/. Теперь параметры имеют только инкрементные значения.

В угловыми 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> 

В угловыми 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 1.2 и 1.3?

+0

Также была создана проблема с GH: https://github.com/angular/angular.js/issues/9960 –

ответ

1

Основываясь на этой проблеме в репозитории GitHub от AngularJS, похоже, что это был непреднамеренный побочный эффект от изменений, внесенных в Angular 1.3. https://github.com/angular/angular.js/issues/9592. На обсуждение там звучит так, будто они намерены вернуть поведение так, как это было в Angular 1.2.

Смежные вопросы