2015-06-15 6 views
1

Я искал сеть, чтобы получить пример маршрутизатора angular2, который изменяет URL-адреса браузера. Все примеры, которые там отсутствуют, не меняют URL-адреса браузера при изменении разных маршрутов. Можете ли вы дать мне небольшой пример в ES6, чтобы продемонстрировать это?Угловая 2 маршрутизация

ответ

1

example.

на компоненте класса:

@RouteConfig([ 
    { path: '/',   name: 'home',  component: Home }, 
    { path: '/dashboard', name: 'dashboard', component: Dashboard }, 
    { path: '/todo',  name: 'todo',  component: Todo } 
]) 
export class App {} 

name не является необходимым, но может быть использован для обеспечения псевдонима.

В шаблоне:

<a router-link="home">Home</a> 

Обратите внимание, что router-link должен существовать на <a> теге.

+0

Спасибо большое за ответ. Является ли это способом, которым я могу выполнять динамическую маршрутизацию. Перейдите к маршруту после проверки состояния? Есть ли у вас примеры динамической маршрутизации с последней версией angularjs 2.0 (..27)? –

+1

[Пример аутентификации маршрута с использованием alpha.26] (https://github.com/auth0/angular2-authentication-sample) – shmck

+0

Возможно ли инициировать маршрутизацию из javascript. как $ state.go() в угловом JS. Я пробовал location.go в угловом 2, но не работал. – abhilash

2

После того, как вы раскопали исходный код Angular2, я выяснил один из способов получить динамическую маршрутизацию. Давайте посмотрим пример:

import {Router} from 'angular2/router'; 
@Component({ 
    ... 
}) 
export class SampleComponent { 
    public router: Router; 

    constructor(router: Router) { 
     this.router = router; 
    } 

    goTo(uri) { 
     this.router.navigateByUrl(uri); 
    } 
} 
+0

Hi Peter, Когда вы меняете маршрут, вы обнаружите, что он возвращается к исходному маршруту? Когда я меняю маршрут на приборную панель, он сразу же возвращается к виду входа в систему. Любая идея, почему это происходит? – AngularM

+0

Не могли бы вы показать код? Возможно, в вашем коде есть ошибка, которая перенаправляет маршрут на этот маршрут. –

0

в тестовом модуле вы могли бы сделать что-то вроде ..

spyOn(instance.router, 'navigateByUrl'); // first thing inside it block 

expect(instance.router.navigateByUrl).toHaveBeenCalledWith(uri); // near end of it block when you would have expected the navigation to have happened 
Смежные вопросы