【发布时间】:2015-07-23 03:59:56
【问题描述】:
例如,我像这样使用路由器链接:
<li><a [router-link]="['/start']">Start</a></li>
但是如何通过 typescript 将路由器更改为 /start?
【问题讨论】:
标签: angular angular-new-router
例如,我像这样使用路由器链接:
<li><a [router-link]="['/start']">Start</a></li>
但是如何通过 typescript 将路由器更改为 /start?
【问题讨论】:
标签: angular angular-new-router
与哈希定位策略相关的小更新。
在 angular2 的最新版本中,bind 方法已被弃用,因此您可以使用 provide 方法更改定位策略。
bootstrap(MyApp, [
ROUTER_PROVIDERS,provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
【讨论】:
我相信你问的是如何在 Angular 2 中配置你的路由。
2) 使用@RouteConfig 在组件上设置路由
可选:将井号 (#) 添加到您的网址
这是一个例子:
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
]);
【讨论】:
routerInjectables 已更改为ROUTER_PROVIDERS
ROUTER_PROVIDERS 应该排在 LocationStrategy 之前。否则它不会工作。 (花了一个小时弄清楚)