2016-03-28 9 views
1

選択したフィールドのカスタム列定義をUIグリッドに配置し、残りのフィールドをデータスキーマから取得できますか?このユースケースは、私のjsonデータスキーマが可変であり、私が(データ内に存在する)確信している列が1つだけあり、その列にカスタムセルテンプレートを適用したいからです。uiグリッドの選択列をカスタマイズする

グリッドオプション:データは可変スキーマのJSONオブジェクトである

$scope.gridOptions = { 
    data: data, 
    columnDefs: [ 
     { field: 'name', width: 250, cellTemplate: "../../tpl/grid/name_template.html" } 
    ] 
} 

このようにグリッドを定義すると、データオブジェクトの名前フィールドのみがグリッドに表示されます。名前フィールドにカスタム列の定義を使用し、列定義を指定せずにデータオブジェクトの他のオブジェクトを表示することは可能ですか?

を私のデータオブジェクトを指定できます:

[{name: 'apple', type: 'fruit', seasonal: true}] 

か:

[{name: 'apple', color: 'green', taste: 'sour'}] 

基本的に私のユースケースは、私は前に知っておくための方法はありませんようになっているより多くの明快さを提供するために、

どの列がグリッドデータオブジェクトを初期化するクエリから返されるのかはわかりますが、名前列がクエリによって返されるデータの一部になるということは確かです。名前欄にカスタムセルテンプレートやその他のプロパティを指定し、そこにある可能性のある他の列も表示したいと考えています。

通常の動作では、フィールドの1つの列に列定義を指定すると、データの一部である他のすべての列の定義を指定する必要があります。他のフィールド名が何であるか知っている。

+0

私は理解していません - このチュートリアルはあなたのニーズに合っていませんか? http://ui-grid.info/docs/#/tutorial/306_custom_filtersそうでない場合は、なぜ詳細を記述してください。 –

答えて

0
$scope.gridOptions = { 
    data: data, 
    columnDefs: [ 
     { field: 'name', width: 250, cellTemplate: $.get('url-to-your-template.html') } 
    ] 
} 

上記が有効かどうかを確認してください。テンプレートを取得するために独自のサービスを使用できます

+0

これは、問題を解決するためにどのように役立つのでしょうか? 1つのカラムだけが表示されることになるn個のデータカラムのうちの1つのためのdef。私はそれを試してみて、それは私に型エラーを与える - template.replaceは関数ではありません。早速のご返事ありがとうございます。 –

+0

あなたは何をしようとしているのplunkerを作成できますか?またはいくつかのコード? –

+0

質問を編集して確認してください。 –

関連する問題