Реактивный запрос на сбор данных в шаблоне

StackOverflow https://stackoverflow.com//questions/12662715

  •  11-12-2019
  •  | 
  •  

Вопрос

У меня есть Template названный movies, у которого есть метод, возвращающий список объектов из коллекции.Запрос для генерации этого списка объектов создается динамически с использованием данных из другого шаблонного метода.

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

Вот два используемых метода:

  Template.movies.filter = function () {                                             
    if (Session.equals("filter", undefined)) {                                       
      return {};
    }
    return Session.get("filter");                                                    
  };                                                                                 

  Template.movies.movies = function () {                                             
    return Movies.find(Template.movies.filter(), {sort: [["Poster", "desc"]]});
  };

На стороне HTML это простой {{#each movies}}{{> movie}}{{/each}} чтобы показать результаты из movies метод.

Проблема это когда Session.get("filter") меняется, и, следовательно, то же самое происходит Template.movies.filter(), HTML-компонент, опирающийся на Template.movies.movies() данные не будут обновляться с учетом новых результатов запроса.

Как бы я добился такого поведения?

Это было полезно?

Решение

Самый простой способ - просто создать функцию javascript, которую используют оба помощника:

var getFilter = function() {
  if (Session.equals("filter", undefined)) {                                       
    return {};
  }
  return Session.get("filter")
}

Template.movies.filter = function() { return getFilter(); }
Template.movies.movies = function () {                                             
  return Movies.find(getFilter(), {sort: [["Poster", "desc"]]});
};

Это отреагирует так, как вы ожидаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top