Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular 10中访问此阵列中的特定数据?_Angular_Angular10 - Fatal编程技术网

如何在Angular 10中访问此阵列中的特定数据?

如何在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

我正在angular 10中制作一个登录应用程序,现在我需要以某种方式访问数据,但我不确定如何访问

这是我获取数据的地方。方法“getUsers”获取所有数据

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
运算符。另外,您可以包含一些示例数据来说明您想要从中获取什么。