2015-03-18 3 views
2

В контроллере ember они поддерживают состояние через переходы, поскольку они являются одиночными, возможно ли сделать то же самое с компонентом?Получить компонент ember для поддержания состояния через переходы маршрута

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

+0

вы можете разработать свой вариант использования? Может быть, вы можете сохранить последнее состояние в контроллере – Sushant

+0

Используйте услугу, как описано в: https://stackoverflow.com/questions/32620550/where-to-store-transient-ui-state-in-ember-2-0 – Jon

ответ

1

Нам нужен больше контекста для этого вопроса, но вероятный ответ заключается в том, что ваш компонент должен находиться в родительском шаблоне, который не переходит при переходе на разные маршруты. Таким образом, в application.hbs вы бы:

{{your-persistent-component}} 
{{outlet}} <!-- Outlet your sub-routes are rendered into --> 

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

+0

Что вы подразумеваете под гнездом в ресурс? – Nikos

+0

Посмотрите документацию по ресурсам - моя точка зрения заключается в том, что часто в ember мы используем ресурс, такой как 'this.resource ('user', {path: '/'}, function() {// больше маршрутов и ресурсов' to держите модель/состояние зарегистрированного пользователя. Но вы не очень подробно изложили, поэтому я не могу сказать, что ваш вариант использования. – mpowered

+0

Ну, у меня есть компонент в маршруте, и этот маршрут только, который должен поддерживать свое состояние когда я перемещаюсь и возвращаюсь к своему родительскому маршруту. – Nikos

1

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

например:

{{foo-comp fooCompProp1=fooControllerProp1 fooCompProp2=fooModelProp1 }}