Comment filtrer les éléments à l'intérieur de “ngFor” en boucle, basée sur la propriété de l'objet string

J'ai besoin de filtrer les éléments à l'intérieur d'un ngFor boucle, par la modification de la catégorie dans la liste déroulante. Par conséquent, quand une catégorie est sélectionnée dans la liste, il doit mentionner les éléments contenant la même catégorie.

Modèle HTML:

<select>
  <option *ngFor="let model of models">{{model.category}}</option>
</select>

<ul class="models">
  <li *ngFor="let model of models" (click)="gotoDetail(model)">
  <img [src]="model.image"/>
  {{model.name}},{{model.category}}
  </li>
</ul>

Éléments De Tableau:

export var MODELS: Model[] = [
{ id: 1, 
  name: 'Model 1', 
  image: 'img1', 
  category: 'Cat1', 
},

{ id: 2, 
  name: 'Model 2', 
  image: 'img2', 
  category: 'Cat3',
},

{ id: 3, 
  name: 'Model 3', 
  image: 'img3', 
  category: 'Cat1',
},
{ id: 4, 
  name: 'Model 4', 
  image: 'img4', 
  category: 'Cat4',
},

...
];

Aussi, la liste déroulante contient répété les noms de catégorie. Il est nécessaire pour une liste unique des catégories (chaînes de caractères).

Je sais que la création d'une coutume pipe serait la bonne façon de le faire, mais je ne sais pas comment l'écrire.

Plunker: http://plnkr.co/edit/tpl:2GZg5pLaPWKrsD2JRted?p=preview

Pourquoi ne pas faire ce filtrage dans le code du composant? Vous pourriez le faire par exemple *ngFor="let model of filteredModels" et écrire get filteredModels() { ... } à fournir. On pourrait faire la même chose pour donner un tableau d'entrées uniques pour le select élément.
"je sais que la création d'une coutume pipe serait la bonne façon de le faire" - ce qui vous a amené à cette conclusion? "mais je ne sais pas comment écrire" - alors, avez-vous envisagé de l'apprentissage?
Assurez-vous jonrsharpe :). Je suis un novice et j'espère que je vais trouver le bon chemin. J'ai lu beaucoup de posts sur le filtrage de l'angle de 2, personnalisé tuyaux sont principalement visé le bon choix ..

OriginalL'auteur gundra | 2016-11-19