获取可观察对象

时间:2017-09-25 17:05:56

标签: angular observable angularfire2

我有这个代码,它通过Product类型列表。

<div class="form-group" *ngIf="produtos != null">
  <label class="form-control-label" for="produto">Produto</label>
    <select class="form-control" id="produto" (change)="setProduto($event.target.value)" name="produto">
        <option value="" selected="">selecione</option>
        <option *ngFor="let produto of produtos | async" [value]="produto">
            NF: {{ produto.nNF }}
         </option>
    </select>
</div>

我需要获取对象类型“product”并移动到我的组件中的函数。

但我不能。我得到了对象,但我无法遍历属性。

这是我的组成部分:

public produtos: Observable<Produto[]>;
retrieveProdutos(cnpjFornecedor: string) {
this.produtos = this.srv.getProdutos(cnpjFornecedor)
}

我的服务:

    getProdutos(cnpjFornecedor: string): Observable<Produto[]> {
    return this.db.list(this.pt.pathProduto, {
    query: {
    orderByChild: 'fornecedor/cnpj',
    equalTo: cnpjFornecedor
    }
    });

}

我的模特

export class Produto {
public nNF: string;
public data: string;
public peso: number;
public precoCompra: number;
public desconto: number;
public urlNota: string;
public vendido: boolean;
public adm: string;
public fornecedor: any;
}

1 个答案:

答案 0 :(得分:0)

您可以尝试将模型更改为此,

export interface Produto {
 nNF: string;
 data: string;
 peso: number;
 precoCompra: number;
 desconto: number;
 urlNota: string;
 vendido: boolean;
 adm: string;
 fornecedor: any;
}

您确定您将拥有可用的属性值并为Produto的每个属性分配。如果没有,请通过添加?将其标记为可选。例如,如果descontovendido是可选的,请将其标记为

export interface Produto {
 nNF: string;
 data: string;
 peso: number;
 precoCompra: number;
 desconto?: number;
 urlNota: string;
 vendido?: boolean;
 adm: string;
 fornecedor: any;
}

看看是否有任何改变。