Создание простого окна поиска с фильтрами - PullRequest
2 голосов
/ 01 апреля 2012

Редактировать: Итак, я усвоил урок о проверке строковых констант сегодня. Решением было заменить «фильтр» на «фильтры» в шаблоне.

Я пытаюсь создать простое окно поиска с 4 флажками для применения некоторых фильтров. Проблема заключается в том, что флажки никогда не возвращают true, даже если установлен флажок в режиме разработки.

Я определил свою форму следующим образом, где Filters - это оболочка класса case, содержащая 4 bools:

val searchBox = Form(
   tuple("search" -> nonEmptyText,
  "filters" -> mapping(
    "filterpublic" -> boolean,
    "filterprivate" -> boolean,
    "filterstream" -> boolean,
    "filterdownload" -> boolean
    ) (Filters.apply) (Filters.unapply)
)

)

Мой html-шаблон определен так:

@form(action = routes.Application.getResults, 'id -> "searchBox") {

  <fieldset>
  <legend>Searchbox</legend>
    @inputText(field = searchBox("search"), args = '_label -> "search",
      'placeholder -> "Type here!")

    @checkbox(field = searchBox("filter.filterpublic"), args =
 '_label -> None, '_text -> "public")

@checkbox(field = searchBox("filter.filterprivate"), args =
 '_label -> None, '_text -> "private")

    @checkbox(field = searchBox("filter.filterstream"), args =
 '_label -> None, '_text -> "streamable")

@checkbox(field = searchBox("filter.filterdownload"), args =
 '_label -> None, '_text -> "downloadable")

  <input type="submit" id="submit">
  </fieldset>
}

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

1 Ответ

0 голосов
/ 17 апреля 2012

Я думаю, вы должны изменить 'filter' на 'filters' в вашем шаблоне. Так что «filters.filterpublic» вместо «filter.filterpublic».

...