如何在Angular 10中访问此阵列中的特定数据?
我正在angular 10中制作一个登录应用程序,现在我需要以某种方式访问数据,但我不确定如何访问 这是我获取数据的地方。方法“getUsers”获取所有数据如何在Angular 10中访问此阵列中的特定数据?,angular,angular10,Angular,Angular10,我正在angular 10中制作一个登录应用程序,现在我需要以某种方式访问数据,但我不确定如何访问 这是我获取数据的地方。方法“getUsers”获取所有数据 import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; import { HttpClient } from '@angular/common/http'; import { LoginModel } f
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { LoginModel } from '../models/login.model';
import { tap } from 'rxjs/operators';
@Injectable()
export class LoginService {
private url = 'api/user';
// tslint:disable-next-line: variable-name
private _users$ = new BehaviorSubject<LoginModel[]>([]);
get users$(): Observable<LoginModel[]> { return this._users$.asObservable(); }
constructor(private http: HttpClient) { }
getUsers(): Observable<LoginModel[]> {
return this.http.get<LoginModel[]>(this.url)
.pipe(
tap(data => this._users$.next(data))
);
}
}
现在,我想在我的登录组件中访问这个组件中的特定数据,例如userID。在我的logincomponent中,我导入了LoginService(第一个代码),这样我就可以使用“getUsers”方法(它返回一个数组),但是如何从数组中获取特定的数据呢?提前感谢。您需要在组件中或在使用HTTP observable时调用它的任何地方使用getUsers()
let userdetails:Array<LoginModel> = [];
this.getUsers.subscribe((User) =>{
user.forEach(details =>{
//get details here
console.log(details.userID);
console.log(details.wachtwoord);
console.log(details.admin);
userdetails.push(details);
});//for each end
},(error)=>{
//handle error
});
2.)第二种方法是获取行为主体的即时值。不建议这样做,因为您只会在需要管理值状态的时刻获得
let userdetails:Array<LoginModel> = this._users$.getValue(); //gives instant value
let userdetails:Array=this.\u users$.getValue()//提供即时价值
更好的解决方案是在getUser调用中这样做
let userdetails:Array<LoginModel> = [];
this.getUsers.subscribe((User) =>{
//detailshere
userdetails = this._users$.getValue();//value update
userdetails.forEach((detail)=>{
console.log(userdetails.userID);
console.log(userdetails.wachtwoord);
console.log(userdetails.admin);
});
},
(error)=>{
//handle error error
});
let userdetails:Array=[];
this.getUsers.subscribe((用户)=>{
//详细说明
userdetails=this.\u users$.getValue();//值更新
userdetails.forEach((细节)=>{
log(userdetails.userID);
log(userdetails.wachtwoord);
log(userdetails.admin);
});
},
(错误)=>{
//处理错误
});
在使用HTTP observable时,您需要在组件中或在调用它的任何位置使用getUsers()
let userdetails:Array<LoginModel> = [];
this.getUsers.subscribe((User) =>{
user.forEach(details =>{
//get details here
console.log(details.userID);
console.log(details.wachtwoord);
console.log(details.admin);
userdetails.push(details);
});//for each end
},(error)=>{
//handle error
});
2.)第二种方法是获取行为主体的即时值。不建议这样做,因为您只会在需要管理值状态的时刻获得
let userdetails:Array<LoginModel> = this._users$.getValue(); //gives instant value
let userdetails:Array=this.\u users$.getValue()//提供即时价值
更好的解决方案是在getUser调用中这样做
let userdetails:Array<LoginModel> = [];
this.getUsers.subscribe((User) =>{
//detailshere
userdetails = this._users$.getValue();//value update
userdetails.forEach((detail)=>{
console.log(userdetails.userID);
console.log(userdetails.wachtwoord);
console.log(userdetails.admin);
});
},
(error)=>{
//handle error error
});
let userdetails:Array=[];
this.getUsers.subscribe((用户)=>{
//详细说明
userdetails=this.\u users$.getValue();//值更新
userdetails.forEach((细节)=>{
log(userdetails.userID);
log(userdetails.wachtwoord);
log(userdetails.admin);
});
},
(错误)=>{
//处理错误
});
使用
map
操作符。另外,您可以包含一些示例数据,以说明您希望从中获取什么。请使用map
运算符。另外,您可以包含一些示例数据来说明您想要从中获取什么。