170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|
1 | |
Не работает orderBy после изменения атрибута элемента11.10.2016, 19:03. Показов 814. Ответов 7
Метки нет (Все метки)
Здравствуйте!
У меня есть коллекция элементов, у которых есть статус. Статус меняется так: - при клике на определенный элемент показывается список статусов - при клике на какой либо статус вызывается функция, в которую передается сам элемент (переменной из ng-repeat) и новый статус - внутри функции я делаю elem.status = status; При этом значение статуса в контроллере изменяется, но элемент попадает в начало списка, на него не действуют никакие order-ы. Соответственно после обновления страницы (в функции я аяксом еще и в базе меняю статус) все бывает нормально - элемент встает туда, куда надо... Такое ощущение, что он из контекста вылетает. Я сделал пробный макет маленький и там сортировка работала, но там приложение было простенькое, а в моем приложении я даже не представляю, с какого места можно начать баги искать) Подскажите, пожалуйста, в чем может быть дело? Добавлено через 4 минуты а, еще наблюдение... если поменять статусы у нескольких элементов, то между ними сортировка работает... то есть вот если изменить 5 элементов, то эти 5 элементов будут в начале списка, но друг относительно друга будут отсортированы правильно...
0
|
11.10.2016, 19:03 | |
Ответы с готовыми решениями:
7
Не работает псевдо-класс hover в IE после изменения альфа-прозрачности элемента Не работает Me.OrderBy Как работает OrderBy Как работает метод Enumerable.OrderBy? |
19 / 19 / 12
Регистрация: 03.10.2016
Сообщений: 107
|
|
12.10.2016, 05:57 | 2 |
Какие order ты применяешь к ng-repeat? Если под "коллекцией" ты подразумеваешь массив, то изменение элемента массива никак вообще не меняет положение этого элемента в массиве.
Следовательно либо как то неправильно работает фильтр на repeat либо показывай функцию изменения статуса
0
|
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|||||||||||
12.10.2016, 07:41 [ТС] | 3 | ||||||||||
Angry_n_Hungry, верно, коллекция - массив. А положение я имею ввиду визуально, как ангуляр сортирует их внутри себя - я как то не знаю даже))
Элементы массива примерно такие: Код
{ name: '', description: '', status: '', priority: '' } Так вот проблема - если поменять статус элемента (как я понял, только статус, при изменении, например, имени сортировка срабатывает), то элемент перестает подчиняться общей сортировке)) Он поднимается в начало списка и сортируется только среди других "отредактированных" элементов. Процесс изменения статуса примерно такой. Кликаю на кнопку, изменяющую статус
0
|
19 / 19 / 12
Регистрация: 03.10.2016
Сообщений: 107
|
|
12.10.2016, 09:23 | 4 |
Незнаю, у меня вот все ок вот пример https://jsfiddle.net/9bz4Lwxa/266/. Вероятно проблема в том что ты используешь в качестве статуса или в функции его меняющей. Сравнивай
0
|
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|
12.10.2016, 14:21 [ТС] | 5 |
Angry_n_Hungry, я тоже думал, что например статус - число, а потом вставляю строку... но так поверхностно посмотрел, вроде нет в этом проблем...
а вот с функцией не могу придумать, в чем может быть проблема... я пробовал $scope.$apply() после изменения статуса. Если сразу там же писать, то выдает ошибку, ругается на какой то процесс... Видимо во время работы скрипта не может эту функцию запускать... Пробовал засунуть этот кусок в $timeout, вообще никакой реакции) Не знаю уже, где еще искать косяк.
0
|
19 / 19 / 12
Регистрация: 03.10.2016
Сообщений: 107
|
|
12.10.2016, 16:01 | 6 |
Делать максимально приближенный тестовый пример
0
|
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||||||||||||||||
13.10.2016, 13:04 | 7 | |||||||||||||||
А если сразу после
0
|
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|
13.10.2016, 17:35 [ТС] | 8 |
LeniumSoft, нет, ничего не происходило. Но причину я все таки нашел =) Как оказалось, я не достаточно проверил... Все таки сначала значения были типа "строка", а скрипт потом ставил тип "число", поэтому так все получалось)
0
|
13.10.2016, 17:35 | |
13.10.2016, 17:35 | |
Помогаю со студенческими работами здесь
8
Отслеживание изменения атрибута Изменения атрибута в xml После изменения IP address на сервер, не работает 1с Prototype Изменения атрибута disabled у input Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |