ссылка на запрос-params в тлеющих углах - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь передать некоторые параметры запроса в качестве параметра компонента, а затем использовать его на link-to.

{{activities/list-item
  model=submission
  task=model
  parent=parent
  group=model.group
  activitiesShowRoute=(concat "assignments.show.tasks.discuss.show." (pluralize submission.type) ".show")
  queryParams=(query-params allocation_id="all")
}}

И затем я использую это так:

{{#link-to activitiesShowRoute group parent task model queryParams}}Click{{/link-to}}

Это работает, как и ожидалось, проблема в том, что если я вызываю компонент без значения в queryParams, то генерируется ссылка имеет href='#' вместо желаемого маршрута без параметра запроса.

Я не хочу иметь {{#if queryParams}} вне ссылки, потому что на самом деле содержание моей ссылки довольно сложное, и я не Т, что повторить все.

Можно ли заставить его вести себя так, как я хочу? Спасибо

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Современная версия углового кронштейна <LinkTo> поддерживает га sh с параметрами запроса:

<LinkTo @route="posts" @query={{hash direction="asc"}}>Sort</LinkTo>

Это не только более надежное решение на будущее и рекомендуемый в настоящее время способ, но также уменьшает сложность вашего укажите сценарий c, так как вам больше не нужно использовать {{query-params}} помощник.

Применительно к вашему коду это будет выглядеть так:

{{activities/list-item
  model=submission
  task=model
  parent=parent
  group=model.group
  activitiesShowRoute=(concat "assignments.show.tasks.discuss.show." (pluralize submission.type) ".show")
  queryParams=(hash allocation_id="all")
}}
<LinkTo
  @route={{@activitiesShowRoute}}
  @models={{@array @group @parent @task @model}}
  @queryParams={{@queryParams}}
>
  Click
</LinkTo>

Вы можете продолжить упростите API, если вы измените API c publi {{activities/list-item}} (или <Activities::ListItem> в синтаксисе угловых скобок), чтобы напрямую принимать аргументы @route, @models и @queryParams.

Угол Кронштейны версий встроенных компонентов доступны с Ember 3.10. См. примечания к выпуску для получения подробной информации. Они являются частью Ember Octane edition .

0 голосов
/ 25 апреля 2020

Добавить постоянный неиспользуемый параметр запроса

queryParams=(query-params foo="bar")
...