2016-03-28 2 views
1

Можно ли задать пользовательское определение столбца для выбора полей в сетке ui и выбрать оставшиеся поля из схемы данных? Этот случай использования возникает потому, что моя json-схема данных является переменной, и есть только один столбец, в котором я уверен (его присутствие в данных), и хотел бы применить шаблон пользовательской ячейки только к этому столбцу.Настроить столбцы выбора в ui-grid

Параметры сетки:

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

где данные являются объектом JSON переменной схемы.

Если я определяю сетку таким образом, в сетке будет отображаться только поле имени из моего объекта данных. Можно ли использовать специальный разделитель столбцов для поля имени, а также отобразить другие объекты в объекте данных без указания для них определений столбцов?

Для обеспечения большей ясности:

мой объект данных может быть:

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

или:

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

В основном мой случай использования таким образом, что нет никакого способа для меня, чтобы знать, прежде чем какие столбцы будут возвращены из запроса, который инициализирует объект данных сетки, но я уверен в том, что столбец имен будет частью данных, возвращаемых запросом. Я хотел бы предоставить настраиваемый шаблон ячейки и другие свойства в поле имени, а также отобразить другие столбцы, которые могут быть там.

Нормальное поведение заключается в том, что если я укажу определение столбца для одного столбца в поле, тогда я должен указать определения для всех остальных столбцов, которые являются частью данных, чтобы сделать их видимыми, и в моем случае я не знаю, t знать, что могут быть другими именами полей.

+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

Я не уверен, как это могло бы помочь в ситуации, поскольку проблема связана скорее с указанием столбца def для одного из n столбцов данных, которые приведут к отображению только одного столбца. Я пробовал это, и это дает мне ошибку типа. Template.replace не является функцией. Спасибо за быстрый ответ. –

+0

Можете ли вы создать плункер того, что вы пытаетесь? Или еще какой-нибудь код? –

+0

Пожалуйста, проверьте мое редактирование на вопрос, чтобы обеспечить большую ясность. –

Смежные вопросы