我需要捕获查询字符串,但是我收到错误。我使用的代码很简单,但在浏览器中让我失望。
@Component({
selector: 'body',
viewProviders: [ ROUTER_PROVIDERS],
directives: [ CORE_DIRECTIVES, ROUTER_DIRECTIVES],
template: '<p>the param is {{foo}}</p>'
})
export class app {
constructor(params: RouteParams) {
// http://local.../?myText=Hello
this.foo = params.get('myText');
}
}
documentation对此类事情并不十分清楚。它绝对没有,只有null
。
答案 0 :(得分:3)
在Angular RC1路由器中,您需要让组件实现OnActivate接口以获取路由参数:
import { ROUTER_DIRECTIVES, Router, OnActivate, RouteSegment } from '@angular/router';
Component({
selector: 'body',
providers: [ ROUTER_PROVIDERS],
directives: [ CORE_DIRECTIVES, ROUTER_DIRECTIVES],
template: '<p>the param is {{foo}}</p>'
})
export class app implements OnActivate {
constructor() { }
routerOnActivate(currSegment: RouteSegment) {
this.foo = currSegment.getParam('myText'),
}
答案 1 :(得分:2)
我认为您必须将viewProviders
替换为providers
或更好,如果您在启动应用时提供ROUTER_PROVIDERS
,请执行以下操作: -
bootstrap(AppComponent, [ROUTER_PROVIDERS]);
可能对您有所帮助,如果您仍有任何问题,请更新您的问题并提供错误消息,或者如果您提供任何plunker更好。