我有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%确定例如:this.selectedEventLog.getEntries()[0].grades[0].value
当我在ag-grid中没有看到这个值时返回1。另一方面,当我写'grades['+indexOfNewGrade']'
时,它工作正常,但它绑定到整个对象而不是'值'属性。
成绩对象:
export class Grade {
constructor(value) {
this.value = value;
}
}
答案 0 :(得分:0)
为什么要将其作为字符串输入?我似乎无法掌握你正在做的事情。我只想做field: grades[indexOfGrade].value.toString()
。请注意缺少'
,因为您实际上希望获得存储在数组Grade
内的indexOfGrade
处的特定grades
的值。然后,您获得value
属性,只有才能使其成为字符串。
<强> 更新 强>
我想我得到了你想做的事。您是否尝试使用value getter expressions?
如果是这样,您的代码应该是这样的:
{
headerName: "Grade",
field: 'newGrade' + indexOfNewGrade.toString(),
valueGetter: 'data[' + indexOfNewGrade.toString() + '].value'
}
答案 1 :(得分:0)
不确定评估是否支持数组评估。
相反,你应该使用值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