2017-01-15 3 views
0

У меня есть угловое приложение с двумя страницами. На экране init у меня есть несколько div. Когда щелкает div, полный экран div масштабируется и отображает содержимое.Угловая 2 добавить маршрут, когда div scaled

Есть ли способ добавления URL-адрес маршрута при щелчке DIV, как site.com/article1, site.com/article2 ...?

Я пробовал использовать routerlink, но это перенаправляет на site.com/article1, и я не вижу эффект масштабирования div.

+0

Что 'добавление URL route' значит? возможно, вы имеете в виду 'router.navigate()' –

+0

Я имею в виду, когда я нажимаю на ссылку article1 div, url покажет site.com/article1. Я попытался с помощью (click) = "divClick()", а затем router.navigate, но не повезло –

ответ

0

Это будет работать:

changeRoute(route: string): void { 
    this._location.go(`articles/${route}`); 
} 

и

(click)="changeRoute('article1')" 
0

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

Способ сделать это, чтобы добавить переменную в маршрут, в определении маршрута, как это:

{ path: 'articles/:articleNumber' component: ArticleComponent} 

И когда ДИВ нажата, вы добавляете (нажмите) на ваш DIV, и сделать он переместится к статье в div, который был нажат. Это может выглядеть примерно так:

<div (click)="navigate('Article1')">/*Div content goes here*/</div> 

//TODO: Get article name dynamically, based on the article that was clicked 

В компоненте:

navigate(article: string): void { 
    this.router.navigate(`/articles/${article}`); 
} 

Таким образом, ничто не будет на самом деле изменить в представлении, даже если изменения пути.

+0

Это определенно перенаправляет на правильный маршрут, но перезагружает браузер ... –

+0

Прошу прощения. Не могли бы вы попробовать '[routerLink] =" ['/ articles/$ {article}'] "вместо этого. Убедитесь, что у вас есть 'private route: ActivatedRoute, private router: Router,' в конструкторе. – Joakim

Смежные вопросы