【发布时间】:2019-03-25 21:10:07
【问题描述】:
更新服务以在 Angular 7 中运行。我有两个功能正在审查开始 - 登录功能和获取用户信息功能。
我一直在使用这些模块 从 '@angular/http' 导入 { Http, Response, RequestOptionsArgs, Headers };
我找不到有关迁移的指导。
login(request: LoginUserRequest): Observable<LoginUserResponse> {
var options:RequestOptionsArgs ={};
options.headers = new Headers();
options.headers.append("content-type", "application/x-www-form-urlencoded");
var actual_request:string = "grant_type=password" +
"&username=" + request.username + "&password=" + request.password;
return this._http.post(this._loginUserUrl, actual_request, options)
.map((response: Response) => <LoginUserResponse> response.json())
.catch(this.handleError);
}
getUserContext(): Observable<UserContextResponse> {
var options = this.getOptionHeader();
return this._http.get(this._users + "/current/context", options)
.map((response: Response) => <UserContextResponse> response.json())
.do((data) => {
this._refreshUserContext(data);
this._userContext = data;
this.isuserContextReady.next(data);
})
.catch(this.handleError);
}
完整服务.ts:
import { Injectable } from '@angular/core';
import { Http, Response, RequestOptionsArgs, Headers } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/throw';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Subject } from 'rxjs/Subject';
import { LoginUserRequest, LoginUserResponse, UserContextResponse } from "./membership.messages";
import { BaseService } from "../../app/membership/membership.base-service";
import { UserProfileService } from "../../app/userprofile.service";
@Injectable()
export class MembershipService extends BaseService {
private _loginUserUrl:string;
private _users:string;
public _userContext: UserContextResponse;
loggedIn:boolean;
public isuserContextReady: BehaviorSubject<UserContextResponse> = new BehaviorSubject<UserContextResponse>(null);
constructor(private _http: Http,
private _userProfileService:UserProfileService) {
super();
this._loginUserUrl = this.baseurl + '/token';
this._users = this.baseurl + '/api/users';
var auth_token = sessionStorage.getItem('auth_token');
this.loggedIn= (auth_token)?true:false;
}
getUserContext(): Observable<UserContextResponse> {
var options = this.getOptionHeader();
// console.log("at get user context");
return this._http.get(this._users + "/current/context", options)
.map((response: Response) => <UserContextResponse> response.json())
// .do(data => console.log('All: ' + JSON.stringify(data)))
.do((data) => {
this._userContext = data;
this.isuserContextReady.next(data);
})
.catch(this.handleError);
}
login(request: LoginUserRequest): Observable<LoginUserResponse> {
var options:RequestOptionsArgs ={};
options.headers = new Headers();
options.headers.append("content-type", "application/x-www-form-urlencoded");
var actual_request:string = "grant_type=password" +
"&username=" + request.username + "&password=" + request.password;
return this._http.post(this._loginUserUrl, actual_request, options)
.map((response: Response) => <LoginUserResponse> response.json())
.catch(this.handleError);
}
}
【问题讨论】:
-
添加您的服务的完整代码,以便我可以重写一些向您展示如何迁移
-
Service.ts 代码:
标签: angular