angular service.component error TS2339: Свойство «подписка» не существует для типа «Обещание <Object>» - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь выучить угловой, создав веб-приложение для прихода.в products-list.component.ts у меня есть метод удаления, который кажется формально правильным, но в фазе npm start происходит ошибка с кодом ошибки

TS2339: Свойство «подписка» делаетне существует для типа «Обещание».

Я прошу прощения, если я не соблюдаю формальные правила для переадресации проблемы, но я новичок и, возможно, я документирую проблему неправильно.Спасибо тебе за твое терпение.Moreno

идет неправильно в методе onDelete

в других классах, я использую подобный код, и у меня не было ошибки такого рода.Есть ли импорт на list.component-продукты?Спасибо inifinite

import { Component, OnInit, SystemJsNgModuleLoader } from '@angular/core';
import { NgForm } from '@angular/forms';


import { Prodotti } from 'src/app/model/prodotti.model';
import { Router, ActivatedRoute } from '@angular/router';
import { JsonPipe } from '@angular/common';

import { ProdottiListService} from 'src/app/features/prodotti/components/prodotti-list/prodotti-list.service';
import { ToastrService } from 'ngx-toastr';



let Header_Msg = "Gestione Prodotti";


@Component({
  selector: 'app-prodotti-list',
  templateUrl: './prodotti-list.component.html',
  styleUrls: ['./prodotti-list.component.css']
})
export class ProdottiListComponent implements OnInit {

  constructor(private service: ProdottiListService, private toastr: ToastrService) {

   }

  ngOnInit() {
    this.service.refreshList();
  }

  populateForm(emp: Prodotti) {
    this.service.formData = Object.assign({}, emp);
  }

  onDelete(id: number) {

    if (confirm('Confermi la cancellazione del Record ?'))  {
        this.service.deleteProdotti(id).subscribe(res => {
          this.service.refreshList();
          this.toastr.warning('Cancellazione eseguita con successo', Header_Msg);
        })
    }
  }

}

ОШИБКА в src / app / features / prodotti / components / prodotti-list / prodotti-list.component.ts (41,41): ошибка TS2339: свойство «подписаться» не существуетпо типу «Обещание».

1 Ответ

0 голосов
/ 18 июня 2019

Необходимо убедиться, что метод обслуживания возвращает Observable , а не a promise.

В вашем случае ProdottiListService имеет deleteProdotti, который возвращает promise, поэтому вы должны использовать .then(..), а не .subscribe().

Либо обновите свой метод обслуживания, чтобы он возвращал observable, либо не используйте .subscribe в компоненте:

this.service.deleteProdotti(id).then(res => {
          this.service.refreshList();
          this.toastr.warning('Cancellazione eseguita con successo', Header_Msg);
        })
...