1

にアクセスすることmyproject.dev/people?filter%5Bindustry%5D=finance&filter%5BstartWith%5D=aで、Angular2 は URL をmyproject.dev/people

ここに私のRouteConfigがあります:

@RouteConfig([
    {
        path: '/people',
        name: config.route.main,
        component: MainComponent,
        useAsDefault: true
    }
])

MainComponent で:

/// <reference path="../../../typings/angular2.d.ts" />

import {Component, Injector} from 'angular2/core';
import {ROUTER_DIRECTIVES, Router, RouteParams} from 'angular2/router';
import {BaseResourceComponent} from '../../Component/BaseResourceComponent';
import {Status as MainStatus} from '../../reusable/modules/status.svc';

import {Status} from '../../reusable/modules/status.svc';
import {Config} from "./Config";

import URI from 'urijs';

export class MainComponent extends BaseResourceComponent {
    constructor(config: Config, status: Status, mainStatus: MainStatus, private router: Router, private routeParams: RouteParams) {
        super(config, status, mainStatus);
    }

    onInit() {
        var path = new URI(window.location.href);
        path.setQuery('filter[industry]', 'fashion');
        path.setQuery('filter[startWith]', 'a');

        console.log(path);
        console.log(this.router);
        //this.router.root.lastNavigationAttempt = "/people?filter%5Bindustry%5D=finance&filter%5BstartWith%5D=a"

        console.log(this.routeParams);
        // this.routeParams returns {params: Object}
        // this.routeParams.params.get('filter') return null
    }
}

からはまだ取得できますがthis.router.root.lastNavigationAttempt、これだけを取得するのはちょっと難しい方法です。GET パラメータを取得するより良い方法はありますか?

4

3 に答える 3

0

@GünterZöchbauerは正しいです。子ルートのみ使用できますが、使用できmatrix parameterませんquery parameter

于 2016-04-22T14:55:56.007 に答える