2016-05-09 9 views
3

私はag-gridに問題があります。データをAg-Gridでバインドしようとしました。私は私のシステムでの新グレードを入力するときに、私は1列でAG-グリッドを展開します。ag-gridにネストされたjsonが表示されない

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リターン1 Iは、Ag-グリッドでこの値を見ていないです。一方、私は'grades['+indexOfNewGrade']'と書いてもうまく動作しますが、 'value'プロパティではないオブジェクト全体にバインドします。 グレード対象:

export class Grade { 
    constructor(value) { 
    this.value = value; 
    } 
} 

答えて

0

は、なぜあなたはそれを文字列として入力環境ていますか?私はあなたが何をしているのか把握していないようです。私が単純にやることは、field: grades[indexOfGrade].value.toString()です。配列gradesの中にindexOfGradeに格納されているその特定の値Gradeを実際に取得したいので、'の欠如に注意してください。その後、valueプロパティを取得し、しか入力しない場合は、を文字列にします。

更新

私は私はあなたが何をしようとしてなったと思います。 value getter expressionsを使用しようとしていますか?評価は、アレイの評価をサポートしている場合

{ 
    headerName: "Grade", 
    field: 'newGrade' + indexOfNewGrade.toString(), 
    valueGetter: 'data[' + indexOfNewGrade.toString() + '].value' 
} 
+0

NOPを、それはだ、それが文字列である必要があります – Walfrat

+0

@Walfratが更新されました。私は今度はこれを得ました:) – tfrascaroli

+0

ag-gridが配列のインデックスを評価するかどうかをテストしなかったので関数のアプローチを優先しましたが、もしそうなら、私の答えは同じです私は推測します:P – Walfrat

0

わからない:それはそうなら

は、あなたのコードは次のようなものでなければなりません。

は、代わりにあなたが値ゲッターを使用する必要があります。valueGetterについて

function buildValueGetter(index){ 
    return function(params){ 
     return params.data.grades[index].value; 
    } 
} 

var newGrade = {headerName: "Grade", id: 'grades-'+indexOfNewGrade, 
    valueGetter:buildValueGetter(indexOfNewGrade)}; 

関連ドキュメント:それはAG-グリッドによって、後で評価する必要があるためhttps://www.ag-grid.com/javascript-grid-value-getters/index.php

関連する問題