2015-06-09 3 views
0

Я создаю свое первое приложение emberjs, используя данные ember и ember cli.Как фильтровать список записей по нескольким категориям?

У меня есть набор видеороликов, каждый из которых относится к категории. Я хотел бы, чтобы пользователь мог создать список воспроизведения, выбрав категории, которые они интересуют, и видео, принадлежащие этой категории, для загрузки в {outlet}. Я также хотел бы сохранить этот список выбранных категорий в местном магазине, чтобы они могли вернуться к нему позже.

В категориях есть много видеороликов, и видео принадлежат к категории.

У меня есть модели и маршруты, собранные вместе, поэтому я могу отобразить категорию с соответствующими видео, она захватывает данные из моего приложения rails с помощью активного адаптера модели, это отлично работает.

Где я застрял (а изучение ульбера было для меня серьезной кривой обучения) заключается в том, как даже подходить к этой проблеме.

Могу ли я создать серию изображений категорий, которые при нажатии активируют действие, которое добавляет эту категорию в массив, а затем фильтруют поиск в магазине, чтобы включить новые категории, чтобы видео просто отображалось на странице динамически?

Есть ли какой-либо другой способ, которым я должен подходить к этому? Любые советы приветствуются. Ссылка на учебные пособия, видео, статьи, сообщения в блогах и т. Д., Которые могут дать мне представление, также будет замечательным. Я потратил много часов на Google, пытаясь получить направление в голову без каких-либо результатов, и некоторые быстрые советы от кого-то, кто находится за кривой обучения, будут большой помощью!

ответ

1

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

1) video и category - это модели данных с использованием ember-данных.

2) Маршрут для видео: нагрузки всех видео и всех категорий в свойство видео контроллера,

RSVP guide

model: function() { 
    return Ember.RSVP.hash({ 
    videos: this.store.find('video'), 
    categories: this.store.find('category') 
    }); 
}, 

setupController: function(controller, models) { 
    controller.setProperties(models); 
} 

3) Видео контроллер:

  • параметра запроса currentCategories (строка)

  • вычислено свойство filteredVideos = фильтр videos на основе currentCategories (есть много ответов, как это сделать, PARAMS запрос руководство именно о фильтрации по категориям)

Query parameters guide

4) Видео шаблон:

  • filteredVideos список,
  • для всех категорий ссылки для изменения queryParam currentCategories (или выберите)

Этот ответ детализирован, так как вы спрашиваете о направлении. Если вы хотите узнать подробности, я могу обновить этот ответ.

+0

Спасибо, что дает мне направление, я буду работать над этим и вернуться к вам, если я не смогу заставить код работать. –

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