Как создать массив, используя значения из столбцов в сетке ag? - PullRequest
0 голосов
/ 11 марта 2019

Я новичок в ag grid и буду признателен за помощь.

Я смотрю пример с сайта ag grid (https://next.plnkr.co/edit/pS6575GNn6MliLBD)

У меня есть столбцы со следующими значениями:

export class AppComponent {
private gridApi;
private gridColumnApi;

private columnDefs;
private rowData;
private defaultColDef;
private getRowNodeId;

constructor() {
this.columnDefs = [
  {
    headerName: "Make",
    field: "make"
  },
  {
    headerName: "Model",
    field: "model"
  },
  {
    headerName: "Price",
    field: "price",
    filter: "agNumberColumnFilter"
  }
];
this.rowData = [
  {
    id: "aa",
    make: "Toyota",
    model: "Celica",
    price: 35000
  },
  {
    id: "bb",
    make: "Ford",
    model: "Mondeo",
    price: 32000
  },
  {
    id: "cc",
    make: "Porsche",
    model: "Boxter",
    price: 72000
  },
  {
    id: "dd",
    make: "BMW",
    model: "5 Series",
    price: 59000
  },
  {
    id: "ee",
    make: "Dodge",
    model: "Challanger",
    price: 35000
  },
  {
    id: "ff",
    make: "Mazda",
    model: "MX5",
    price: 28000
  },
  {
    id: "gg",
    make: "Horse",
    model: "Outside",
    price: 99000
  }
];
this.defaultColDef = {
  editable: true,
  sortable: true,
  filter: true
};
this.getRowNodeId = function(data) {
  return data.id;
};

}

Как сохранить значения в столбце «Цена» в массиве?

Чтобы уточнить, я хотел бы иметь массив сзначения из 'Price' - примерно так:

var exampleArray = [35000,32000,72000,59000,35000,28000,99000]

(полный пример, включая предварительный просмотр, можно увидеть по предоставленной мной ссылке на плункер)

1 Ответ

1 голос
/ 11 марта 2019

Боюсь, что текущий способ получения всех данных из AG-Grid довольно неинтуитивен. Вы должны сделать что-то вроде этого, если хотите получить данные из вашей ag-сетки. Не забудьте инициализировать gridApi внутри вашего компонента! На вашем component.html

 <ag-grid-angular (gridReady)="onGridReady($event)" ... ></ag-grid-angular>

А на ваших component.ts,

onGridReady(params) {
  this.gridApi = params.api;
}
 .
 .
getRowData() {
  let rowData = [];
  this.gridApi.forEachNode(node => rowData.push(node.data));
  console.log(rowData)
}

Чтобы получить массив цен, вы можете сделать следующее:

const pricesArray = rowData.map(row => row['price']);
console.log(pricesArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...