Как использовать * ngIf в * ngFor в Angular 7? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть несколько элементов в документе DocumentModel, которые я хочу показать, кроме «содержимого».Я уже пытался исключить его, проверив название элемента, но он все равно отображается:

<p *ngFor="let item of (document | keyvalue)">
    <b *ngIf="item.key != 'content'">{{item.key}}:</b> {{item.value}}
</p>

Я также пытался использовать контент без '', что также не работает.

Как я могу сделать что-то вроде if(!key.equals("content")) как в Java?

Модель документа

export class DocumentModel 
{ 
    messageType: string; 
    content: string; 
    failed: boolean; 
    string1: string; 
    string2: string; 
}

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вот ваш исходный код:

<p *ngFor="let item of (document | keyvalue)">
    <b *ngIf="item.key != 'content'">{{item.key}}:</b> {{item.value}}
</p>

Но если я посмотрю на *ngFor, то мне кажется, что элемент может быть document или keyvalue.Итак, мой вопрос: вы уверены, что document и keyvalue имеют поле key?

0 голосов
/ 17 декабря 2018
You can create pipe to access key

import { PipeTransform, Pipe } from '@angular/core';

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]});
    }
    return keys;
  }
}
html:
<span *ngFor="let item of content | keys">           
   <b *ngIf="item.key != 'content'">{{item.key}}:</b> {{item.value}}
</span>

Или

Запись фильтра для данных содержимого из списка.

...