Javascript.RU

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

Возвращение данных с PipeTransform Angular2
Всем привет.
Интересует возможность возвращения данных после pipe фильтра. Ситуация следующая: есть таблица юзеров, у каждого юзера есть чекбокс и свойство checked. Хочется сделать кнопку, которая может всем найденным пользователям сделать checked = true. А не всему массиву пользователей. Каким образом можно это реализовать на Angular 2?
На jquery можно было пройтись по элементам с помощью .each(), но не хочется.
Pipe фильтр
Шаблон таблицы
Функционал таблицы

Последний раз редактировалось CrazyBite, 11.09.2017 в 16:34.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2017, 09:10
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Попробовал с Jquery сделать .prop('checked', true);
Чекбоксы он чекнул, но ngModel не поменял свойство checked осталось false.
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2017, 09:21
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

CrazyBite,
https://github.com/CrazyBite/userman...mponent.ts#L92 ?
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2017, 09:25
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Сообщение от destus Посмотреть сообщение
CrazyBite,
https://github.com/CrazyBite/userman...mponent.ts#L92 ?
Это чекает первоначальный массив users, а нужно что бы чекало только отфильтрованный (измененный с помощью transform).
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2017, 09:40
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

CrazyBite,
Первое, что можно сделать, это вызывать твой фильтр не из HTML шаблона, а импортировать в компонент, создать инстанс этого фильтра и вручную вызывать transform. Ну то есть что-то типа

usertable.component.ts
import {PipieUsertableComponent} from 'pipe-usertable.component.ts'
export class UsertableComponent implements OnInit, OnChanges {
    ...
    filteredUsers: User[];
    ...
}
ngOnChanges() {
  this.filteredUsers = new PipieUsertableComponent().transform(this.users, /* другие параметры */);
}
check() {
    this.filteredUsers.forEach( user => user.checked = true);
}


и в шаблоне
<tr *ngFor="let user of filteredUsers; let num = index;">
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2017, 10:02
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Да, думаю сработает, спасибо большое!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при обработке данных TBUCTEP Общие вопросы Javascript 11 12.05.2017 14:56
AJAX меняет символы при отправке данных fenix_63 AJAX и COMET 6 17.11.2015 14:20
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 17:18
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32