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);
}
}
