我正在尝试通过为教区创建Web应用程序来学习角度知识。
在products-list.component.ts
中,我有正确的删除方法,但是在npm start
阶段,它出现了错误代码
TS2339:类型“ Promise”上不存在属性“ subscribe”。
如果我不尊重转发问题的正式规则,我深表歉意,但是我是新来的,也许是我错误地记录了问题。 谢谢你的耐心。 莫雷诺
在onDelete
方法上出错
在其他类中,我使用类似的代码,并且没有发生此类错误。 list.component-products上有进口吗? 谢谢无限
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:“承诺”类型不存在属性“订阅”。
答案 0 :(得分:0)
您需要确保服务方法返回Observable
不是 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);
})