Darn @Alex Beugnet (upvote) победил меня!Я собираюсь опубликовать в любом случае, как я был в середине написания всего этого.
Во-первых, я не уверен, сколько из TypeScript вы уже знаете, я прошу прощения, если большая часть из нихстановится тривиальным, цель состоит только в том, чтобы обеспечить максимальное прояснение вопроса в понимании логики.
В части руководства «Разрешить выбор» вы, по сути, активируете выбор нескольких строк в сетке, а кнопка возвращаетданные из этих выбранных строк.
Чтобы увидеть, что происходит с функцией getMultipleRows (), лучше всего визуализировать ее с помощью отладчика, предоставляемого в браузерах, я использую инструменты разработчика Chrome (нажмите F12)Я очень рекомендую это для понимания того, что происходит в логике.
const selectedNodes
Давайте начнем с выбора, скажем, 2 строк, я выбрал Porsche Boxster 72000 и Ford Mondeo 32000. Послевыбирая их, я нажимаю кнопку «Получить выбранные строки», которая вызывает getSelectedRowФункция s ():
const selectedNodes = this.agGrid.api.getSelectedNodes();
В приведенной выше строке присваивается постоянной переменной selectedNodes RowNodes из AgGrid.Здесь вы используете метод AgGridNg2 getSelectedNodes () для возврата данных выбранного узла, для которых вам будет возвращен массив в виде:
[RowNode, RowNode] //(each for the row we have selected)
Глядя в RowNode, мы получаем:
Это все свойства RowNode, предоставляемые платформой AgGrid, вы можете игнорировать все эти свойства объекта, поскольку вас интересует только свойство «data» как вы.Посмотрим на следующую строку кода!
const SelectedData
const selectedData = selectedNodes.map(node => node.data);
Здесь мы устанавливаем 'selectedData' в виде массива RowNode.data, в основном пытаясь получить свойство данных изRowNode в массив.Вышеприведенную строку можно принять за:
let selectedData = [];
for (let i = 0; i <= selectedNodes.length - 1; i++){
selectedData[i] = selectedNodes[i].data;
}
, в которой мы просто пытаемся получить свойство данных в новую постоянную переменную selectedData.Посмотрите на документацию, чтобы лучше понять это: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
const selectedData будет возвращено как:
[
{
make: "Porsche",
model: "Boxster",
price: 72000,
},
{
make: "Ford",
model: "Mondeo",
price: 32000
}
]
const selectedDataStringPresentation
const selectedDataStringPresentation = selectedData.map( node => node.make + ' ' + node.model).join(', ');
Мы береммассив selectedData и объединить марку и модель как один элемент для массива и добавить запятую в конце.Мы бы получили "Porsche Boxter, Ford Mondeo".
let selectedData = [
{
make: "Porsche",
model: "Boxster",
price: 72000,
},
{
make: "Ford",
model: "Mondeo",
price: 32000
}
]
let selectedDataStringPresentation = [];
for (let i = 0; i <= selectedData.length - 1; i++){
selectedDataStringPresentation[i] = selectedData[i].make + ' ' + selectedData[i].model;
}
selectedDataStringPresentation = selectedDataStringPresentation.join(', ');
console.log(selectedDataStringPresentation);
alert ()
И последняя строка
alert('Selected nodes: ${selectedDataStringPresentation}');
Вы отправите в браузере предупреждение, которое будетотобразить массив selectedDataStringPresentation.