Búsqueda de sitios web

angular - Cómo pasar valores a una función que espera una Clase


Así que tengo un método para crear un usuario en mi base de datos de Firebase, espera una instancia de un modelo específico.

Pero no tengo idea de cómo tomar los valores, combinarlos y luego pasarlos a la función como ese tipo.

import { Component, OnInit } from '@angular/core';
import { Entry } from '../entry.model';
import { MemberService } from 'src/app/member.service';
import { Member } from 'src/app/member.model';
@Component({
  selector: 'app-register',
  templateUrl: './register.component.html',
  styleUrls: ['./register.component.css']
})
export class RegisterComponent implements OnInit {
  entry: Entry;
  member: Member;
  constructor(private memberservice: MemberService) { }

  ngOnInit(): void {
  }
//function being called from front end button with input fields that pass values
  create(surName: string, pass: string, color: string){
     //Should call createMember();
     //Id,Priority gets set here not by the user
  }

La función de Servicio:

  createMember(member: Member){
    return this.firestore.collection('members').add(member);
  }

El Modelo

export class Member {
    id: string;
    surname: string;
    color: string;
    password: string;
    priority: number;
}

Respuesta #1

Este es un caso donde una interfaz de TS sería más adecuada en lugar de una clase. La interfaz admite la verificación de tipos sin el "exceso" innecesario de una clase.

Prueba lo siguiente

Modelo

export interface Member {
  id: string;
  surname: string;
  color: string;
  password: string;
  priority: number;
}

Luego podrías crear un objeto de tipo Member.

export class RegisterComponent implements OnInit {
  ...

  // Function being called from front end button with input fields that pass values
  create(surName: string, pass: string, color: string) {
     const member = {
       id: <set id>,
       surname: surName,
       color: color,
       password: pass,
       priority: <set priority>       
     } as Member;

     this.memberservice.createMember(member)
       .then((res) => console.log('Set member with ID:', id)
       .catch((error) => console.log('Error setting member:', id);
  }
}

Artículos relacionados