我对ag-grid有问题。我尝试将我的数据绑定到ag-grid。因此,当我在系统中输入新年级时,我将ag-grid扩展了一列:
var newGrade = {headerName: "Grade", field: 'grades[' + indexOfNewGrade + '].value'};
this.$scope.columnDefs.push(newGrade);
this.$scope.gridOptions.api.setColumnDefs(this.$scope.columnDefs);
this.$scope.gridOptions.api.setRowData(this.selectedEventLog.getEntries());
例如,我100%确定:当我在ag-grid中看不到这个值时,this.selectedEventLog.getEntries()[0].grades[0].value
返回1。另一方面,当我编写'grades['+indexOfNewGrade']'
时,它工作得很好,但它绑定到整个对象,而不是“值”属性。评分对象:
export class Grade {
constructor(value) {
this.value = value;
}
}
发布于 2016-05-18 15:21:49
为什么要把它作为字符串输入呢?我好像不太明白你在做什么。我会简单地做的是field: grades[indexOfGrade].value.toString()
。注意,这里没有'
,因为您实际上想要获取存储在数组grades
内的indexOfGrade
中的特定Grade
的值。然后,您将获得value
属性,只有在使用时,您才会将其变成一个字符串。
更新
我想我明白你想做什么了。您是否正在尝试使用value getter expressions
如果是这样,你的代码应该是这样的:
{
headerName: "Grade",
field: 'newGrade' + indexOfNewGrade.toString(),
valueGetter: 'data[' + indexOfNewGrade.toString() + '].value'
}
发布于 2016-05-18 15:32:28
不确定求值是否支持数组求值。
相反,您应该使用一个值getter:
function buildValueGetter(index){
return function(params){
return params.data.grades[index].value;
}
}
var newGrade = {headerName: "Grade", id: 'grades-'+indexOfNewGrade,
valueGetter:buildValueGetter(indexOfNewGrade)};
关于valueGetter的相关文档:https://www.ag-grid.com/javascript-grid-value-getters/index.php
https://stackoverflow.com/questions/37124141
复制相似问题