Я только что начал с новейшей версии Angular. Переменная contacts представляет собой массив.
Теперь у меня есть ошибка с методами:
ngOnInit(): void {
this.contactService.getContacts() .subscribe(
contacts =>
{
this.contacts = contacts;
console.log(this.contacts);
}
);
Сообщение показывает:
Тип «Объект» можно присвоить очень немногим другим типам. Вы хотели вместо этого использовать тип «любой»? В типе «Объект» отсутствуют следующие свойства типа «Контакт []»: длина, всплывающее окно, push, concat и еще 26.ts(2696)
Я много раз пытался исправить эти проблемы, но не нашел правильного решения.
Весь код выложен здесь:
import { Component, OnInit } from '@angular/core';
import {ContactService} from '../contact.service'
import {Contact} from '../contact';
@Component({
selector: 'app-contacts',
templateUrl: './contacts.component.html',
styleUrls: ['./contacts.component.scss'],
providers: [ContactService]
})
export class ContactsComponent implements OnInit {
contacts: Contact[];
contact: Contact;
first_name:string;
last_name:string;
phone: string;
constructor(private contactService: ContactService) { }
ngOnInit(): void {
this.contactService.getContacts() .subscribe(
contacts =>
{
this.contacts = contacts;
console.log(this.contacts);
}
);
}
}
Надеюсь, вы, ребята, можете мне помочь.
Я добавил модуль сервисного кода здесь:
import { Injectable } from '@angular/core';
//import {Http, Headers} from '@angular/http';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import {Contact} from './contact';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class ContactService {
constructor(private http: HttpClient) { }
//retrieving ContactService
getContacts()
{
return this.http.get('http://localhost:3002/api/contacts');
}
//add contact method
addContact(newContact) {
var headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:3002/api/contact', newContact, {headers:headers})
}
//delete methods
deleteContact(id)
{
return this.http.delete('http://localhost:3002/api/contact'+ id);
}
}
Object
наany
. Вы заменяете меньшее зло большим злом. РефакторингgetContacts()
для возвратаContact[]
вместо этого. - person Mike S.   schedule 21.07.2020