2016-09-22 3 views
0

Я следую за курсом Angular2, имеющим фон с каркасом Sencha ExtJS.Управление большими данными в Angular2

Мой вопрос довольно прост: с AngularJS, как вы храните и взаимодействуете с большими структурами данных? Во всех курсах, когда Служба извлекала данные, всегда была маленькой и хранилась в массиве.

Почему я упомянул ExtJS? Поскольку он предлагает классы, называемые Store to, как следует из названия, хранить данные и запрашивать их, с возможностью фильтрации, сортировки, сопоставления и т. Д.

Давайте сделаем пример:

У меня есть список аэропортов в мире, и я хочу предложить ее в отборное. Конечно, я настрою услугу, введенную в список выбора, который предлагает весь список. Но тогда:

-Я хочу, чтобы фильтровать как пользователь идти на набрав

-The массив, содержащий данные, представляет собой массив объектов с другими свойствами после названия, как страны или идентификатор

Каким будет подход?

+0

привет, что мешает вам хранить данные (например, список аэропортов) в интеллектуальном компоненте поверх приложения? Это самый распространенный дизайн, который я видел до сих пор. – pietro909

+0

Если проблема связана с методами запроса для списка сложных объектов, вы можете использовать одну из самых известных библиотек (Lodash предлагает _map_, _filter_, _fold_, ...) или RxJS для работы асинхронно. – pietro909

+0

Это именно то, что я искал. Как новый для Angular мне нужно было просто понять управление.Нет ничего встроенного, и вы должны делегировать внешние библиотеки. Как я уже говорил, ExtJS был доставлен со всеми этими управлениями, которые уже включены. Что вы подразумеваете под умным компонентом? app.component? Однако спасибо вам большое! –

ответ

1

Согласно моим комментариям, вот мой ответ.

В Угловое 2 мы имеем интеллектуальные компоненты, который принимает логику и данные, и тупые компоненты которые представляют собой чистые виды, без логики и предпочтительно без гражданства.

В идеале вы можете получить данные из API и доставить его на свои интеллектуальные компоненты, либо вернув все данные, либо подвергая поток RxJS.

Пример использования RxJS будет:

  • Служба вызова API, и возвращая Observable с данными
  • Интеллектуальный компонент потребления данных сервиса, в виде Subscription
  • One или более немой компонент, отображающий данные, которые выталкиваются интеллектуальным компонентом (действующим в качестве контейнера)

На этом этапе ваши манипуляции с данными могут находиться либо в сервисе, либо в интеллектуальном компоненте (это зависит от того, что вам нужно преобразовать и как). Чтобы управлять данными, я предлагаю вам использовать RxJS, который предлагает возможность цепных потоков и filter, aggregate, map, ... методов. Он асинхронный.

Если вы можете пойти на что-то менее сложное, но блокировать (это зависит от ваших требований), я бы предложил вам использовать Lodash, в котором методы сбора, группировки, фильтрации и агрегирования данных приносят методы для коллекций.

Смежные вопросы