Member 13767446 Ответов: 1

Я не могу присвоить значения своему объекту, как это исправить?


Сообщение об ошибке
Аргумент типа '{ 'name': string; }' не может быть присвоен параметру типа 'Cd'.
Свойство 'id' отсутствует в типе '{ 'name': string; }'.

Моя модель

import {Nummer} from './nummer.model';

export class Cd {
  _id?: number;
  name:string;
  image?: string;
  madeinyear?: number;
  madeincountry?: string;
  songs?: Nummer[];

  get id(): number {
    return this._id;
  }

  set id(value: number) {
    this._id = value;
  }
  get _name(): string {
    return this.name;
  }

  set _name(value: string){
    this.name = value;
  }
  get _image(): string {
    return this.image;
  }

  set _image(value: string){
    this.image = value;
  }

  get year(): number {
    return this.madeinyear;
  }

  set year(value: number) {
    this.madeinyear = value;
  }

  get country(): string {
    return this.madeincountry;
  }

  set country(value: string) {
    this.madeincountry = value;
  }
  get numbers(): Nummer[] {
    return this.songs;
  }

  set numbers(value: Nummer[]) {
    this.songs = value;
  }
  constructor(values: Object = {}) {
    Object.assign(this, values);
  }
}


Мой машинописный код
<pre>
import {Band} from '../shared/models/band.model';
import {Cd} from '../shared/models/cd.model';
import {Nummer} from '../shared/models/nummer.model';
import {BandsService} from '../shared/services/band.service';
import {FormControl, FormGroup, Validators} from '@angular/forms';
import {ActivatedRoute} from '@angular/router';
import {Component, Input, OnInit} from '@angular/core';

@Component({
  selector: 'app-addEdit-band',
  templateUrl: './addEdit-band.component.html',
  styleUrls: ['./addEdit-band.component.css']
})
export class addEditBandComponent implements OnInit {
  clickMessage = '';
  cdlist: Cd[] = new Array<Cd>();
  id: number;
  constructor(private bandsService: BandsService) { }

  ngOnInit() {
  }

  onAddCdClick(cd:string) {
    if (cd) {
      this.cdlist.push({'name': cd});
    }
  }


  addBand(name, genre) {
      console.log(name,genre);
      const band = new Band({ 'name': name,
         'genre': genre , 'cdlist': this.cdlist});
      console.log('band', band);
      this.bandsService.addBand(band);
  }
}



Что я уже пробовал:

Я попробовал сделать все необязательным в своей модели, но это не привело ни к чему хорошему.

1 Ответов

Рейтинг:
1

iivanovetg

export class addEditBandComponent implements OnInit {
  ...

  onAddCdClick(cd:string) {
    if (cd) {
      this.cdlist.push(new Cd({ name: cd }));
    }
  }