【问题标题】:How to display value of a key dynamically in Angular2?如何在Angular2中动态显示键的值?
【发布时间】:2018-04-13 17:53:18
【问题描述】:

我收到这样的 JSON 响应:-

{
  "status": 1,
  "message": "Data found",
  "list": [
    {
      "id": "1",
      "title": "First Data"
    },
    {
      "id": "2",
      "title": "Second Data"
    }
  ],
  "total": 3,
  "current_page": "1",
  "error": 0
}

在组件文件中,我像这样存储list obj:-

viewPage(page,per_page){  
  this._adminPage.fetchAdminPageData(page, per_page).subscribe(
      data => {
            this.list = data.list;
            this.total_item = data.total;
            this.current_page = data.current_page;
            this.arrayOfKeys = Object.keys(this.list[0]);
          },
      err => {
            console.log(err)
          },
      () => {}
    ); 
  this.status = true;       
}

使用this.arrayOfKeys = Object.keys(this.list[0]); 我得到list 的密钥。

在模板页面中,我正在编写如下代码:-

<thead>
  <tr>
     <th *ngFor='let key of arrayOfKeys'>{{key}}</th>
  </tr>
</thead>

这会在表格标题中显示 idtitle。我这样做是为了让整个表格动态化。

现在,我希望通过循环遍历每个对象来列出每一行的值。

所以我想写这样的东西:-

<table class="table table-striped table-bordered responsive">
   <thead>
      <tr>
        <th *ngFor='let key of arrayOfKeys'>{{key}}</th>
      </tr>
   </thead>
   <tbody>
      <tr *ngFor='let items of list'>
        <td *ngFor='let key1 of arrayOfKeys'>[value of that key of that row]</td>
      </tr>
   </tbody>
</table>

{{items.id}} 显示 id 的值,例如 1、2。我想要像 {{items.{{key1}} 这样的东西来显示每个键的值,例如 1First Data。我该怎么做?

【问题讨论】:

    标签: angular


    【解决方案1】:

    您需要使用[] 表示法。

    <tr *ngFor='let items of list'>
       <td *ngFor='let key1 of arrayOfKeys'>{{ items[key1] }}</td>
    </tr>
    

    【讨论】:

    • 请检查我是否正在使用另一个 *ngFor 和 key1。
    • @Saswat 已编辑。对不起
    • @SurenSrapyan 我们也可以使用let i = index 对吗?
    • 我们可以以某种方式使用索引,但这是捷径
    猜你喜欢
    • 2018-04-02
    • 2018-08-13
    • 2017-09-12
    • 2018-03-09
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多