我是Angular的初学者。我有一些数据存储在REST API中,该API返回JSON数据,我可以毫不费力地获取它。但是,现在我创建了一个登录页面,仅输入用户名。我想要做的是获取通过该登录页面登录的人的数据,而忽略其他数据
电子邮件我存储在变量中。但是我在这里面临的挑战是我不知道如何处理HTTPCLIENT为我提供特定电子邮件的数据。
dataservice.Service.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse, HttpErrorResponse } from '@angular/common/http';
import { Configuration } from "./app.constants";
import { Observable } from 'rxjs/Observable';
import { userdata } from "./tables/data";
import "rxjs/add/operator/catch";
import "rxjs/add/observable/throw";
@Injectable({
providedIn: 'root'
})
export class DataserviceService {
private _actionUrl:any;
constructor(private http: HttpClient,private configuration:Configuration) {
this._actionUrl=configuration.serverWithApiUrl;
}
public getAll(email: any): Observable<userdata[]> {
return this.http.get<userdata[]>(this._actionUrl,).catch(this.errorHandler);
}
errorHandler(error:HttpErrorResponse){
return Observable.throw(error.message ||"Server Error")
}
}
Tables.Component.ts
ngOnInit() {
this.service.getAll(this.email).subscribe(data => this.headerRow = data,
error => this.errorMsg = error);
this.service.getAll(this.email).subscribe(data1 => this.dataRows = data1,
error => this.errorMsg = error);
}
Tables.component.html
table class="table table-hover table-striped">
<thead>
<tr>
<th *ngFor="let daata of headerRow">
{{daata.id}}
</th>
</tr>
</thead>
<tbody>
<tr>
<td *ngFor="let daata of dataRows">
{{daata.id}}
{{daata.phone}}
{{daata.role}}
{{daata.email}}
{{daata.city}}
{{daata.firstName}}
{{daata.lastName}}
</td>
<td><i class="fa fa-edit" data-toggle="modal" data-target="#content"></i></td>
<td><i class="fa fa-history" data-toggle="modal" data-target="#update"></i></td>
</tr>
</tbody>
<br>
</table>
data.ts(接口)
export interface userdata{
id: Number,
phone: Number,
email:any,
city:string,
role:string,
firstName:string,
lastName:string
}
答案 0 :(得分:0)
首先,您必须在服务类中创建一个BehaviorSubject。它将具有最新值。
std::string path = std::cin;
for (auto& file : fs::recursive_directory_iterator(path))
{
do your stuff
}
现在订阅可观察的getEmail()
答案 1 :(得分:0)
我认为您想为此使用凭据。通过身份验证后,您完全不应发送已登录人员的电子邮件,请认为,如果这样做,那么知道您的电子邮件的任何人都可以通过向API发送正确的请求来访问您的数据。例如,您可以创建令牌并在API端管理凭据,因此该API仅基于特权发送信息。这样,您可以简化通信并避免信息泄漏。