2016-04-18 25 views
5

Meine Webanwendung verfügt über mehrere Filter, die in der aktuellen Url dargestellt werden sollten, damit Benutzer die aktuelle Seite einfach kopieren/bookmarken können, um sie später wiederherzustellen.

In angular1 habe ich $location.search(name, value) verwendet, um einfach Suchparameter bei Änderung festzulegen. Jetzt möchte ich in eckig2 etwas Ähnliches bekommen.

Oder ist es falsch?

Antwort

2

Ich denke, Sie müssen den Router in Angular2 verwenden. Codebeispiel:

import {Component} from 'angular2/core'; 
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router'; 
import {ProfileComponent} from './profile.component'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <router-outlet></router-outlet> 
    `, 
    directives: [ROUTER_DIRECTIVES] 
}) 

@RouteConfig([ 
    {path: '/profile/:id', name: 'Profile', component: ProfileComponent} 
]) 

export class AppComponent { 
} 

Die: id ist ein Routenparameter und Sie können eine URL wie das tun: /profile/2 und 2 ist der Wert der id-Parameter.

Sie ausführlich im Angular2 doc finden konnte: router doc

+1

Danke, aber was ist, wenn ich mehrere optionale Parameter haben? –

+2

Sie müssen in diesem Fall queryParams verwenden, und es gibt einen Link auf StackOverflow dafür: [route optionale Parameter] (http://stackoverflow.com/questions/34208745/angular-2-optional-route-parameter) –