2017-03-20 21 views
0

我试图访问属性内的对象调用disputas但我得到这个消息:住宅“campanha”上键入“DisputaComponent []”不存在 - 角2

[TS]物业“campanha”上类型不存在“DisputaComponent []”

我不能访问任何财产内disputas,我想这是因为它返回的disputas数组,所以我怎么能访问内部的每个对象disputa这个数组?

我试图做的是只显示与页面相同ID的对象,这里的代码片段:

constructor(service: DisputaService, private route:ActivatedRoute, 
private router:Router, private campanha_service:FiltroNegociacaoService){ 
    service 
    .lista() 
    .subscribe(disputas => { 
    if (this.disputas.campanha.cliente_id == this.campanha.cliente_id) // this is where I get the message 
     this.disputas = disputas; 
    console.log("Disputas: ", disputas); 
    console.log("Campanha: ", this.campanha); 
    }, erro => console.log("erro")) 
} 

,这里是完整的代码,如果你们需要它:

import { Component, OnInit } from '@angular/core'; 
import {DisputaService} from '../services/disputas.service'; 
import {FiltroNegociacaoComponent} from '../../../filtra-negociacao/components/filtra-negociacao.component'; 
import {FiltroNegociacaoService} from '../../../filtra-negociacao/services/filtro-negociacao.service'; 
import {ActivatedRoute, Routes, RouterModule, Router} from '@angular/router'; 

@Component({ 
    moduleId: module.id, 
    selector: 'disputas', 
    templateUrl: `disputas.component.html`, 
    providers: [DisputaService, FiltroNegociacaoService] 
}) 

export class DisputaComponent implements OnInit { 
    public disputas:DisputaComponent[] = []; 
    public loading = false; 
    campanhas: FiltroNegociacaoComponent; 
    campanha:any; 
    service: DisputaService; 
    name: string; 
    proposta_inicial:number; 
    propostas_realizadas:number = 0; 
    maximo_propostas:number; 
    status = { 
     status_nome: "" 
    } 
    id:number; 

    constructor(service: DisputaService, private route:ActivatedRoute, 
    private router:Router, private campanha_service:FiltroNegociacaoService){ 
     service 
     .lista() 
     .subscribe(disputas => { 
     if (this.disputas.campanha.cliente_id == this.campanha.cliente_id) 
     this.disputas = disputas; 
     console.log("Disputas: ", disputas); 
     console.log("Campanha: ", this.campanha); 
     }, erro => console.log("erro")) 
    } 

    ngOnInit():void{ 
     this.route.params.subscribe(params =>{ 
     let id = params['id']; 
     this.campanha_service 
     .buscaPorId(id) 
     .subscribe(campanha => { 
      this.campanha = campanha; 
     }, 
     erro => console.log(erro)); 
     }) 
    } 

感谢提前:)

回答

1

要检索的disputas数组,并试图找到具有相同cliente_id的那些作为一个在this.campanha 。该阵列本身不具备这个属性,你应该过滤的数组,然后设置结果:

.subscribe((disputas: DisputaComponent[]) => { 
    this.disputas = disputas.filter(
     disputa => disputa.campanha.client_id === this.campanha.cliente_id 
    ); 
} 
+0

谢谢,删除消息,但我仍然无法过滤。不管它有什么身份证明,它都会一直让我回到每个'disputa'对象,你知道会发生什么吗? –

+0

我必须为此创建一个特定的过滤器吗? –

+0

@RenêSilvaLima不,它应该按原样工作。你在哪里检查disputas的回报? – PierreDuc

相关问题