фильтр orderBy в angularJS
пусть есть одномерный массив объектов - objects - в объекте есть какое-нибуть св-во - например index. надо по нему отсортировать весь массив при помощи фильтра orderBy. и заменить массив на отсортированнный.
когда мы делает таким образом ----- <div ng-repeat="object in objects | orderBy: 'index' "> <p class='inndex'> {{ object.index }}</p> </div> то эти индексы выводятся отсортированными - однако массив остается прежним. {{ objects | orderBy: 'index' }} - во view( я это называю видео-трубкой) выдает на экране монитора отсортированный массив, не могу понять как первоначальному массиву присвоить этот отсортированный. |
<!DOCTYPE html>
<html ng-app="demo">
<head>
<meta charset="utf-8" />
<title>AngularJS</title>
<script src="https://code.angularjs.org/1.5.4/angular.js"></script>
<script>
var app = angular.module('demo', []);
app.controller('MainCtrl', function($scope, $filter) {
$scope.objects = [{index: 10}, {index: 1}, {index: 5}];
$scope.objects = $filter('orderBy')($scope.objects, 'index');
});
</script>
</head>
<body ng-controller="MainCtrl">
<div ng-repeat="object in objects">
<p class='inndex'> {{ object.index }}</p>
</div>
</body>
</html>
|
проверил
Эта конструкция работает только один раз в отличие от {{ objects | orderBy: 'index' }} Если динамичски менять массив объектов и индекс, то метод $filter не сортирует меняющиеся массивы - в отличие от того что я написал но я не понимаю как то что появляется на экране превратить в реальный массив |
Цитата:
|
Логично однако - сообщу о результатах
|
Все - заработало - если вы не против - я вам еще пару вопросов задам. Когда соображу как их сформулировать
|
не можете ссылку дать где описывается сотворение методов при помощи $ из фильтров и объектов типа $index
|
| Часовой пояс GMT +3, время: 19:46. |