Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.08.2017, 16:06
Аватар для fenek
Интересующийся
Отправить личное сообщение для fenek Посмотреть профиль Найти все сообщения от fenek
 
Регистрация: 21.06.2017
Сообщений: 27

фильтр orderBy в angularJS
пусть есть одномерный массив объектов - objects - в объекте есть какое-нибуть св-во - например index. надо по нему отсортировать весь массив при помощи фильтра orderBy. и заменить массив на отсортированнный.

когда мы делает таким образом -----

<div ng-repeat="object in objects | orderBy: 'index' ">
<p class='inndex'> {{ object.index }}</p>
</div>

то эти индексы выводятся отсортированными - однако массив остается прежним.

{{ objects | orderBy: 'index' }} - во view( я это называю видео-трубкой) выдает на экране монитора отсортированный массив, не могу понять как первоначальному массиву присвоить этот отсортированный.
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2017, 19:14
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2017, 03:11
Аватар для fenek
Интересующийся
Отправить личное сообщение для fenek Посмотреть профиль Найти все сообщения от fenek
 
Регистрация: 21.06.2017
Сообщений: 27

проверил

Эта конструкция работает только один раз в отличие от
{{ objects | orderBy: 'index' }}

Если динамичски менять массив объектов и индекс, то метод $filter не сортирует меняющиеся массивы - в отличие от того что я написал

но я не понимаю как то что появляется на экране превратить в реальный массив
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2017, 06:49
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
Если динамичски менять массив объектов и индекс, то метод $filter не сортирует меняющиеся массивы - в отличие от того что я написал
Ну так значит надо вызывать еще раз $filter() в том месте, где происходит изменение массива
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2017, 14:27
Аватар для fenek
Интересующийся
Отправить личное сообщение для fenek Посмотреть профиль Найти все сообщения от fenek
 
Регистрация: 21.06.2017
Сообщений: 27

Логично однако - сообщу о результатах
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2017, 14:33
Аватар для fenek
Интересующийся
Отправить личное сообщение для fenek Посмотреть профиль Найти все сообщения от fenek
 
Регистрация: 21.06.2017
Сообщений: 27

Все - заработало - если вы не против - я вам еще пару вопросов задам. Когда соображу как их сформулировать
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2017, 20:46
Аватар для fenek
Интересующийся
Отправить личное сообщение для fenek Посмотреть профиль Найти все сообщения от fenek
 
Регистрация: 21.06.2017
Сообщений: 27

не можете ссылку дать где описывается сотворение методов при помощи $ из фильтров и объектов типа $index
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фильтр orderBy в angularJS fenek Общие вопросы Javascript 0 03.08.2017 02:31
Требуется специалист по AngularJS!!! Смирнов Николай Работа 0 12.05.2016 17:03
Senior разработчик AngularJS в команду SuperTeam Работа 0 20.07.2015 20:54
Фильтр каталога Nivans Элементы интерфейса 4 15.07.2012 15:27