1
すべての列に対してheaderTooltip
を有効にしたいのですが、別の表のすべての列に対してこれを繰り返す必要はありません。ui-grid:global/defaul columnDef
グローバルcolumnDefを設定するか、デフォルトを上書きする方法はありますか?
グローバルな方法がない場合は、テーブル単位でこれを行う方法にも興味があります。
すべての列に対してheaderTooltip
を有効にしたいのですが、別の表のすべての列に対してこれを繰り返す必要はありません。ui-grid:global/defaul columnDef
グローバルcolumnDefを設定するか、デフォルトを上書きする方法はありますか?
グローバルな方法がない場合は、テーブル単位でこれを行う方法にも興味があります。
すべての角度コンポーネントをカスタマイズする最適な方法は、ソースコードを見て、アプリケーションがコンポーネントソースをハックすることなくコンポーネントを変更できるデコレータを作成することです。この例では、カラム定義からカラム自体に設定をコピーする場合、GridColumn.prototype.updateColumnDef
関数を変更する必要があることがわかります。独自のデフォルト値をインストールし(未定義の場合)、変更されていないメソッドをそのまま使用します。このようにして、個々のグリッドで新しいグローバルなデフォルトを引き続きオーバーライドできます。
angular.module(name).config(
$provide => {
$provide.decorator('GridColumn', $delegate => {
const {updateColumnDef} = $delegate.prototype;
$delegate.prototype.updateColumnDef = function(colDef, isNew) {
if(colDef.headerTooltip === undefined)
colDef.headerTooltip = true;
updateColumnDef.call(this, colDef, isNew);
};
return $delegate;
});
}
});
私はデコレータについてよく知らなかった。私はこれがハッキングのまったく新しい道を開くと思う。ありがとう。 –