angular - RouteParams 和查询字符串

标签 angular angular2-routing

我需要捕获查询字符串,但是出现错误。我使用的代码很简单,但是在浏览器中却失败了。

@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

最佳答案

在 Angular RC1 Router 中,您需要让组件实现 OnActivate获取路由参数的接口(interface):

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'),
}

关于angular - RouteParams 和查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37687940/

相关文章:

Angular 2 : "router.navigate" Encoding error in the URL

jquery - 如何在 Angular 2 Webpack 应用程序中导入 jquery ui touch punch?

Angular Material 表如何将对象传递给 displayedColumns 而不是数组

angular - 在 Nrwl Nx 库中导入 Angular Material 主题

javascript - 导航到另一个模块中的组件(Angular)

javascript - 如何将 CanActivate 应用于除某些路径之外的所有路径

angular - Angular 为 4 的标题管

javascript - 通过触发对话框覆盖的函数在 Angular 组件之间传递值

javascript - 无法绑定(bind)到 'routerLink',因为它不是已知的 native 属性

Angular 2 教程上的 Meteor JS 路由不起作用