Я пытаюсь создать компонент разбиения на страницы для приложения ember 2. Поскольку это компонент разбиения на страницы общего назначения, я хотел использовать его на разных маршрутах. Из-за этого мне нужно как-то (на мой взгляд) указать имя моего маршрута для ссылок на страницы для работы.Ember 2 - Переход на маршрут через компонент
Я могу передать в свой маршрут имя (строка) к компоненту легко: {{pagination-component myRoute='myCurrentRouteName'}}
. И внутри компонента: {{link-to myRoute (query-params page=1)}}
Это хорошо работает для перехода на страницы нравится: < < < Во-первых, предыдущий, следующий> Последний >>.
Но я также хотел иметь поле выбора с опциями, указывающими на все страницы, где, если пользователь выбирает страницу, я могу перейти на этот маршрут с помощью queryParams, аналогичного этому: myRoute?page=selectedPage
. Все учебники для ember говорят, что переход внутри компонента - это нет-нет.
Но как мне это сделать, учитывая, что я хочу, чтобы моя разбивка на страницы была общей, и я не хочу иметь действия в каждом маршруте, который имеет дело с разбиением на страницы и обеспечивает тот же самый точный переход?
До сих пор я обнаружил, что могу вставлять '-routing' в компонент, который может работать для перехода внутри компонента, но по какой-то причине он также не работает. Плюс люди говорят, что это частные и ненадежные. Я также попытался сделать Route Mixin с действием, поэтому могу просто sendAction
от компонента с selectedPage
, но я не знаю, как получить маршрутизатор (для того, чтобы позвонить router.transitionTo
) в мой Mixin.
Спасибо! Кажется, я был на правильном пути. Это было последнее, что я пытался сделать (** # 4, используя Mixin **). Но, как я упоминал ранее, я могу расширить Mixin на своих маршрутах и определить действия, такие как ** prev **, ** next ** в нем. Вопрос остается следующим: Как я ссылаюсь на ** router ** внутри Mixin? _ Потому что кажется, что мне нужно вызвать 'router.transitionTo' из ** действий ** prev **/** next **. – GogromaT
Нет. Вы можете просто сказать «это».transitionTo' внутри, так как 'this' относится к экземпляру маршрута – kumkanillam
o, это правильно! Однако я пытаюсь # 4, и я столкнулся с проблемой. Поскольку компонент изолирован, когда я буду вызывать 'this.sendAction' из компонента, это не вызовет никаких действий. Я должен был бы сказать «{{pagination-component prev = (route-action 'prev') next = (route-action 'next') ...}}' везде, где я хотел бы использовать этот компонент. Есть ли способ, чтобы эти действия автоматически ссылались каким-то образом? Поскольку маршрут Mixin будет иметь одно и то же имя для всех этих действий (prev, next и т. Д.). – GogromaT