Как изменить роутер по машинописи в angular2?

Например, я использую ссылку маршрутизатора следующим образом:

<li><a [router-link]="['/start']">Start</a></li>

Но как я могу изменить / запустить маршрутизатор по машинописи?

2 ответа

Небольшое обновление, связанное со стратегией определения местоположения хэшей.

В последних версиях angular2 bind метод устарел, так что вы можете изменить стратегию местоположения, используя provide метод.

bootstrap(MyApp, [
  ROUTER_PROVIDERS,provide(LocationStrategy, {useClass: HashLocationStrategy})
]);

Я полагаю, вы спрашиваете, как настроить ваши маршруты в Angular 2.

  • 1) импортировать и загрузить свой роутер
  • 2) Используйте @RouteConfig для настройки маршрутов на компоненте.

  • Необязательно: Добавьте hashbang (#) к вашему URL

Вот пример:

import {Component, View, bind, bootstrap} from 'angular2/angular2';
import {routerInjectables, routerDirectives, Router, RouteConfig} from 'angular2/router';
import {LocationStrategy, Location, HashLocationStrategy } from 'angular2/router'; // options2: HTML5LocationStategy

// Components
import {Home} from 'home';
import {SomewhereElse} from 'somePlace';

@Component({
  selector: 'app-name'
})
@View({
  template: '<router-outlet></router-outlet>',
  directives: [routerDirectives]
})
@RouteConfig([
  {path: '/start', as:  component: Home},
  {path: '/place/:placeId', component: SomewhereElse}
])
class AppName {}

bootstrap(AppName, [
  routerInjectables,
  bind(LocationStrategy).toClass(HashLocationStrategy) // for hashbang routes (/#/)
  // alternative: use HTML5LocationStrategy
]);
Другие вопросы по тегам