Kurze Antwort (in Typoskript):
// Import you were looking for
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
//... jump down some code
export class MyRegistrationsComponent {
constructor(private http: Http) { }
getDudesAndDudettes() {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({
headers: headers,
// Have to make a URLSearchParams with a query string
search: new URLSearchParams('firstName=John&lastName=Smith}')
});
return this.http.get('http://localhost:3000/MyEventsAPI', options)
.map(res => <Dudes[]>res.json().data)
}
Die docs können Angular2 API Docs for RequestOptions finden. Sie werden feststellen, dass die search
param eine Art von URLSearchParams
Ein weiteres Beispiel in der Angular2 Guides ist (es die JSONP Zeug nichts dagegen, es in der Regel, wie auch Abfrageparameter für normale HTTP-Anfragen verwenden).
Referenz es eine andere Art und Weise zu erklären: How to utilise URLSearchParams in Angular 2
Auch wenn Sie nicht RxJS in Ihrer app.ts
beobachtbaren Funktionalität brechen importiert wurden.
vollständigeres Beispiel in Typoskript:
import {Component} from 'angular2/core';
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
import {Registrant} from './registrant';
import {Registration} from './registration';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'my-registrations',
templateUrl: 'app/my-registrations.component.html',
inputs: ['registrant']
})
export class MyRegistrationsComponent {
constructor(private http: Http) { }
private _registrantionsUrl: string = 'http://localhost:3000/MyEventsAPI';
private _title = 'My Registrations Search';
public registrant: Registrant = { firstName: "John", lastName: "Smith" };
findMyEvents() {
let body = JSON.stringify(this.registrant);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({
headers: headers,
search: new URLSearchParams(`firstName=${this.registrant.firstName}&lastName=${this.registrant.lastName}`)
});
return this.http.get(this._registrantionsUrl, options)
.toPromise()
.then(res => <Registration[]>res.json().data)
.catch(this.handleError);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
Es ist ein gutes Beispiel für XHR-Anfrage. Aber es sendet eine Anfrage an einen Rest-API-Server. Was ich brauche, ist nur Parameter in der Adressleiste zu ändern, ohne eine xhr-Anfrage zu machen. – vbilici
@vbilici so in einer Funktion, wie 'findMyEvents() {window.location.replace (\ 'http: // my.current.page.com? FirstName = $ {this.registrant.firstName} & lastName = $ {this. registrant.lastName}); } Ist das mehr von dem, was Sie suchen? –
@ Toolkit ist es ein Müllcontainer Feuer sicher, oder trinken von einem Hydranten. Wählen Sie Ihre Metapher. :) Das Programmieren findet bessere Wege, um herausfordernde und häufige Probleme zu lösen. Die Frontend-Leute haben nur eine Menge Meinungen zu diesem Thema, https://hackernoon.com/how-it-feel-to-learn-javascript-in--2016-d3a717dd577f –