Javascript Ag grid:数组对象值未正确显示

Javascript Ag grid:数组对象值未正确显示,javascript,html,angular,typescript,ag-grid,Javascript,Html,Angular,Typescript,Ag Grid,如何在单元格中加载以下数组对象标记“name”值 这里的对象看起来像 { id: "1" mark: [ 0: {name: "AUS", id: 1000} 1: {name: "BRA", id: 1050} 2: {name: "CHN", id: 1100} 3: {name: "ECE", id: 1200} 4: {name: "EG", id: 1250} 5:

如何在单元格中加载以下数组对象标记“name”值

这里的对象看起来像

 {
      id: "1"
      mark: [
        0: {name: "AUS", id: 1000}
        1: {name: "BRA", id: 1050}
        2: {name: "CHN", id: 1100}
        3: {name: "ECE", id: 1200}
        4: {name: "EG", id: 1250}
        5: {name: "JAP", id: 1450}
        6: {name: "RUS", id: 1500}
      ]
    }
HTML

<ag-grid-angular #agGrid style="width: 100%; height: 100%;" id="myGrid" class="ag-theme-balham cis-ag-grid"
      [columnDefs]="columnDefs" [defaultColDef]="defaultColDef" [rowSelection]="rowSelection" [rowData]="rowData"
      [context]="context" [frameworkComponents]="frameworkComponents" (selectionChanged)="onSelectionChanged()"
      (rowClicked)='onRowClicked($event)' (gridReady)="onGridReady($event)" [gridOptions]="gridOptions">
    </ag-grid-angular>
当前,它显示在网格列单元格中,如

ID        Mark
--------------
1         [object Object], [object Object], [object Object], [object Object], 
          [object Object], [object Object], [object Object]
预期为,

ID        Mark
  --------------
   1       AUS, BRA, CHN, ECE, EG,JAP,RUS

由于没有提供任何HTML代码,您可以尝试:

<span *ngFor="let obj of data.mark">
 {{ obj.name }},
</span>

{{obj.name}},
在HTML
列中


它以
[object object]
的形式出现,因为它是一个对象(
{name:“AUS”,id:1000}
)。您可以将管道作为
|json
放在
{{obj|json}}

中来可视化它,因为没有提供任何HTML代码,您可以尝试:

<span *ngFor="let obj of data.mark">
 {{ obj.name }},
</span>

{{obj.name}},
在HTML
列中


它以
[object object]
的形式出现,因为它是一个对象(
{name:“AUS”,id:1000}
)。您可以将管道作为
|json
放在
{obj | json}}

中,将其可视化,因为没有提供html,因此可复制的plunker或stackblitz将有所帮助。 试着这样做:

<div *ngFor="let data of dataList">
     <span *ngFor="let item of data.mark">
        {{ item .name }},
      </span>
 </div>

{{item.name},

没有提供html,因此可复制的plunker或stackblitz会有所帮助。 试着这样做:

<div *ngFor="let data of dataList">
     <span *ngFor="let item of data.mark">
        {{ item .name }},
      </span>
 </div>

{{item.name},

请尝试为Ag grid执行此操作

设置列:-

constructor() {
 this.columnDefs = [                    
  {
    headerName: 'Id', sortable: true, resizable: true, valueGetter: 'data.mark.id'
  },
  {
    headerName: 'Mark', sortable: true, resizable: true, valueGetter: 'data.mark.name'
  }
 ]
}
在typescript文件中:-

public dataMarkList:any;

constructor() {

}

yourGetFunction() {
   this.dataMarkList = data.mark
}
并在ag网格中设置
rowData
属性

<ag-grid-angular class="ag-theme-material" style="width: 100%; height: calc(100vh - 200px);" rowSelection="single"
   animateRows="true" [rowHeight]="43" [columnDefs]="columnDefs" rowModelType="infinite"
   paginationPageSize="50" [rowData]="dataMarkList">
</ag-grid-angular>

请尝试为Ag grid执行此操作

设置列:-

constructor() {
 this.columnDefs = [                    
  {
    headerName: 'Id', sortable: true, resizable: true, valueGetter: 'data.mark.id'
  },
  {
    headerName: 'Mark', sortable: true, resizable: true, valueGetter: 'data.mark.name'
  }
 ]
}
在typescript文件中:-

public dataMarkList:any;

constructor() {

}

yourGetFunction() {
   this.dataMarkList = data.mark
}
并在ag网格中设置
rowData
属性

<ag-grid-angular class="ag-theme-material" style="width: 100%; height: calc(100vh - 200px);" rowSelection="single"
   animateRows="true" [rowHeight]="43" [columnDefs]="columnDefs" rowModelType="infinite"
   paginationPageSize="50" [rowData]="dataMarkList">
</ag-grid-angular>

我过去常常这样做。我使用Vue而不是角度。这就是我在Vue中所做的

我创建了一个名为
CellRenderList.vue的
Cell渲染器
组件文件,并将其导入父级。用于在父文件中定义字段

headerName: 'SomeName',
field: 'mark',
cellRendererFramework: 'CellRendererList',
导入组件并添加单元渲染器行应该是对原始文件执行的唯一操作

我的
CellRenderList.vue
组件文件如下所示

<template>
 <div class="">
  <span v-for="(value, index) in mark">
    <span v-if="index != 0">, </span><span>{{ value.name }}</span>
  </span>
 </div>
</template>

<script>
  export default {
    name: 'CellRendererList',
    computed: {
      mark() {
        return this.params.data.mark
      }
    }
  }
</script>

,{value.name}
导出默认值{
名称:“CellRenderList”,
计算:{
马克(){
返回此.params.data.mark
}
}
}
关于单元渲染器的Ag网格文档中有一些很好的示例,说明了如何以角度进行渲染。

。我使用Vue而不是角度。这就是我在Vue中所做的

我创建了一个名为
CellRenderList.vue的
Cell渲染器
组件文件,并将其导入父级。用于在父文件中定义字段

headerName: 'SomeName',
field: 'mark',
cellRendererFramework: 'CellRendererList',
导入组件并添加单元渲染器行应该是对原始文件执行的唯一操作

我的
CellRenderList.vue
组件文件如下所示

<template>
 <div class="">
  <span v-for="(value, index) in mark">
    <span v-if="index != 0">, </span><span>{{ value.name }}</span>
  </span>
 </div>
</template>

<script>
  export default {
    name: 'CellRendererList',
    computed: {
      mark() {
        return this.params.data.mark
      }
    }
  }
</script>

,{value.name}
导出默认值{
名称:“CellRenderList”,
计算:{
马克(){
返回此.params.data.mark
}
}
}

关于单元渲染器的Ag网格文档有一些很好的示例,说明了如何使用Angular进行渲染。

显示HTML文件和组件代码更新文章,并获得预期结果,我问的是
.html
.ts
文件。更新了post html和tsShow html文件和组件代码以预期的结果更新了post。我问的是
.html
.ts
文件。更新了post html和tsI使用ag grid指令。不是htmlI,我使用ag grid指令。不是HTMLU更新帖子。我正在使用ag grid指令。更新帖子。我使用的是ag grid指令。请为[rowData]=“dataMarkList”提供正确的代码。这是行不通的。此外,列筛选器数据未根据网格数据进行更新。请为此[rowData]=“dataMarkList”提供正确的代码。这是行不通的。此外,列筛选器数据未基于网格数据进行更新。