У меня есть простое приложение, которое показывает строки данных в Angular. Когда контроллер изначально загружается данными, я хочу, чтобы строки отображались в том же порядке, в котором они были добавлены в мой массив rows
. Таким образом, свойство orderBy
изначально будет установлено в пустую строку. Щелчок по заголовку столбца должен установить для свойства orderBy
соответствующее значение.
Вот моя скрипка: http://jsfiddle.net/fLjMR/3/.
Вот мой JS:
function ctrl($scope)
{
var rows = [];
for(var i = 10;i < 30;i++)
{
rows.push({name: "Fake Name " + i, email: "fakeemail" + i + "@gmail.com"});
}
$scope.rows = rows;
$scope.orderBy = "";
};
Вот мой HTML:
<table ng-app ng-controller="ctrl">
<thead>
<th><a ng-click="orderBy='name'">Name</a></th>
<th><a ng-click="orderBy='email'">Email</a></th>
</thead>
<tbody>
<tr ng-repeat="row in rows | orderBy:[orderBy]">
<td>{{row.name}}</td>
<td>{{row.email}}</td>
</tr>
</tbody>
</table>
Когда я делаю это в IE и FF, строки изначально появляются в том порядке, в котором они были добавлены, но когда я делаю это в Chrome, средний элемент (в данном случае строка № 20) появляется в начале списка. Почему это?