2017-11-09 14 views
0

のは、私は次のようなデータを持っているとしましょう:私はUIのグリッドにこれを渡しangulars UI-グリッド内の個々の列の定義を設定

let data = [ 
    {name: 'bob', bornOn: 1510174615339}, 
    {name: 'mary', bornOn: 1510164615339} 
] 

場合、私は2列を取得します。エポックタイムを人間が読める形式に解析するため。

$scope.gridOptions.columnDefs = [ 
    {name: 'Born On', field: 'bornOn', cellFilter: 'date:"yyyy-MM-dd\"'} 
] 

しかし、その後、私は名前フィールドを失う:私は、代わりにこのような何かをできるようにしたいと思い

$scope.gridOptions.columnDefs = [ 
    {name: 'Name', field: 'name'}, 
    {name: 'Born On', field: 'bornOn', cellFilter: 'date:"yyyy-MM-dd\"'} 
] 

に:私はこのような何かをする必要があります。

私は列の定義を提供しない場合、私はすべてのプロパティを取得します。

これは少し工夫されていますが、私の実際のプロジェクトでは、さまざまなプロパティを持つオブジェクトをフェッチする必要がありますが、独自の列定義でこれらの異なるプロパティを手動で設定する必要はありません。エポック時間のような特定のカスタムフィールドを割り当てたいだけですが、それらの列定義を設定すると、デフォルトはグリッドに入りません。

単一の列のcolumnDefのみをカスタマイズする方法はありますが、UIグリッドで残りのプロパティ列をデフォルトにすることができます。デフォルトでは

答えて

1

、columnDefs配列が空の場合、UI-グリッドは、この機能を備えたデータからcolumnDefsを生成:

/** 
    * @ngdoc function 
    * @name buildColumnDefsFromData 
    * @methodOf ui.grid.class:Grid 
    * @description Populates columnDefs from the provided data 
    * @param {function(colDef, col, gridOptions)} rowBuilder function to be called 
    */ 
    Grid.prototype.buildColumnDefsFromData = function (dataRows){ 
    this.options.columnDefs = gridUtil.getColumnsFromData(dataRows, this.options.excludeProperties); 
    } 

あなたはgridOptions.columnDefsにそれをassigne前に、あなたはgridUtil.getColumnsFromDataを使用して、配列内の単一の列のをカスタマイズすることができますかあなたは$ timeoutcolumnDefsの機能を変更することができます

$timeout(function(){ 
console.log($scope.gridOptions.columnDefs); 
}); 
関連する問題