简体   繁体   English

在订阅角度和可观察RXJS中比较数据

[英]Comparing Data in Subscribe Angular & Observable RXJS

I am new to Angular & have written below code using in-memory-web-api for Login POC, 我是Angular的新手,并且使用in-memory-web-api用于登录POC编写了以下代码,

DB-service.service: DB-service.service:

import { InMemoryDbService } from 'angular-in-memory-web-api';

export class InMemoryDataService implements InMemoryDbService {
  createDb() {
      let users = [
          {id: 1, username: 'user1', password:'user1', name:'John'},
          {id: 2, username: 'user2', password:'user2', name:'David'},
          {id: 3, username: 'user3', password:'user3', name:'Brad'},
          {id: 4, username: 'user4', password:'user4', name:'Jim'},
          {id: 5, username: 'user5', password:'user5', name:'Saun'}
      ];

      return {users};
  }
}

user.service: user.service:

import { loginUser } from '../_model/user';

@Injectable()

export class UserService {

  private headers = new Headers({ 'Content-Type': 'application/json' });
  private userUrl = 'api/users';  // URL to web api

  constructor(private http:  Http) {
  }


  getLogin(username: string, password: string) {
    const url = `${this.userUrl}`;    
    return this.http.get(url).map(res => res.json());
  }
}

model/user.ts 模型/ user.ts

export class loginUser {
    constructor(
        public id: number,
        public username: string,
        public password: string,
        public name: string) { }
}

login.component.ts login.component.ts

login(form: FormGroup) {

    if (this.loginForm.valid) {
      this.userData.getLogin(form.value.loginUserTxt, form.value.loginPassTxt)
      .subscribe(
        data => {              
          console.log(data);  
           //comparing the data from the array in DB-service.service  
        },
        error => {              
          console.log("Fail");
        });

    }

My issue is that how can I compare that data in subscribe of login.component.ts with the input value. 我的问题是,如何才能将login.component.ts的订阅中的数据与输入值进行比较。

I have update the code below in subscribe 我在订阅中更新了以下代码

this.loggedUser = this.userData.getAuthenticate(data, form.value.loginUserTxt, form.value.loginPassTxt)    
 if (this.loggedUser == "Invalid") {
      //error
 } else {
    //redirect
  }

Thanks all 谢谢大家

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM