该死的@Alex Beugnet(upvote) 击败了我!反正我会发帖,因为我正在写这一切。
首先我不确定您已经了解多少 TypeScript,如果其中很多变得微不足道,我深表歉意,其目的只是为了确保在理解逻辑时最大限度地澄清问题。
在指南的“启用选择”部分,您实际上是在网格中启用多行选择,并让按钮从这些选定的行中返回数据。
为了查看 getMultipleRows() 函数发生了什么,最好通过浏览器中提供的调试器将其可视化,我正在使用 Chrome 开发人员工具(按 F12),我强烈推荐它以了解什么发生在逻辑中。
const selectedNodes
让我们从选择 2 行开始,我选择了 Porsche Boxster 72000 和 Ford Mondeo 32000。选择它们后,我点击触发 getSelectedRows() 函数的“Get Selected Rows”按钮:
const selectedNodes = this.agGrid.api.getSelectedNodes();
上面的行是从 AgGrid 中为 RowNodes 分配常量变量 'selectedNodes'。在这里,您使用 AgGridNg2 方法 getSelectedNodes() 来返回选定的节点数据,您将返回一个数组,格式为:
[RowNode, RowNode] //(each for the row we have selected)
查看我们得到的 RowNode:
这些是 AgGrid 框架提供的所有 RowNode 属性,您可以忽略所有这些对象属性,因为您只关心“数据”属性,您将在下一行代码中看到!
const SelectedData
const selectedData = selectedNodes.map(node => node.data);
这里我们将 'selectedData' 设置为 RowNode.data 的数组,基本上是试图从 RowNodes 中获取数据属性到一个数组中。
上面这行基本上可以假设为:
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 数组并将 Make 和 Model 连接为数组的单个元素,并在末尾添加一个逗号。我们会得到“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('Selected nodes: ${selectedDataStringPresentation}');
您将在浏览器中发送一个警报,该警报将显示 selectedDataStringPresentation 数组。