如何在对象数组中显示特定对象(Angular 5,TypeScript)

时间:2018-04-13 19:13:54

标签: javascript html arrays angular typescript

我在Angular 5中有一个数据提供者。

export class DataProvider {
  location: any;

  private locations: any[] = [
    {
      "name": "restaurant",
      "location": "downtown",
      "category": "restaurant",
      "id": "1"
    },

    {
      "name": "law firm",
      "location": "center city",
      "category": "office",
      "id": "2"
    },

    {
      "name": "public library",
      "location": "suburb",
      "category": "library",
      "id": "3"
    } ]

这是我的HTML文件。

<div *ngFor="let location of locations">
   <h1></h1>
    <h2></h2>
</div>

在这种情况下,如何在具有某些属性的数据数组中加载特定对象(项)? 例如,如果我想加载"category" :"restaurant"的对象,我该怎么做我的HTML文件?所以其他两个人不应该出现。我只想使用这个特定属性加载三分之一。

感谢。

1 个答案:

答案 0 :(得分:2)

您需要访问该属性。您可以使用以下示例

<div *ngFor="let location of locations">
   <h1>{{location.name}}</h1>
    <h2>{{location.category}}</h2>
</div>

修改

根据类别进行过滤:

locationsFiltered = this.locations.filter(location =>location.category=="restaurant");

现在为了使这个例子变得实用,我将创建一个方法来实现它

filter(category : string) : any[] {
   return this.locations.filter(location =>location.category==category);
}

然后在html中

<div *ngFor="let location of locationsFiltered">
   <h1>{{location.name}}</h1>
    <h2>{{location.category}}</h2>
</div>