UI-Grid v3.1.1 привязка фильтра dropdownEditor
Я пытаюсь создать пользовательский выпадающий редактор в UI-Grid. Я следил за сообщением в блоге Брайана Хана об этом.
У меня это в основном работает, за исключением того, что я не могу выяснить привязку для cellFilter, который определен в gridOptions, я хотел бы взять его специально в colDef каждого столбца.
Например, код:
<ui-select-wrap>
<ui-select ng-model="MODEL_COL_FIELD" ng-disabled="disabled" append-to-body="true" autofocus="true">
<ui-select-match placeholder="Choose...">{{ MODEL_COL_FIELD | filter: col.cellFilter}}</ui-select-match>
<ui-select-choices
repeat="item[editDropdownIdLabel] as item in editDropdownOptionsArray | filter: $select.search">
<span>{{ item[editDropdownValueLabel] }}</span>
</ui-select-choices>
</ui-select>
</ui-select-wrap>
По какой-то причине он не вызывает фильтр, когда я пытаюсь вызвать его из col.cellFilter. Я надеюсь, что, как и MODEL_COL_FIELD, есть какая-то привязка, на которую я могу сослаться, но я не могу ее найти.
РЕДАКТИРОВАТЬ: добавил мои параметры сетки.
vm.gridOptions = {
showGridFooter: true,
rowHeight: 40,
enableCellEditOnFocus: true
};
vm.gridOptions.columnDefs = [
{name: 'id', enableCellEdit: false},
{name: 'name', displayName: 'Name (editable)'},
{name: 'age', displayName: 'Age', type: 'number'},
{
name: 'list',
displayName: 'List',
editableCellTemplate: 'app/index/templates/uiSelect.tpl.html',
cellFilter: 'listFilter',
enableCellEditOnFocus: true
},
{
name: 'checkbox',
displayName: 'Checkbox',
type: 'boolean',
cellTemplate: '<input type="checkbox" ng-model="MODEL_COL_FIELD">'
}
];
Не похоже, что cellFilter применяется в моем собственном выпадающем меню. Я пытался использовать CUSTOM_FILTERS, как показано в шаблонах.
<ui-select-match placeholder="Choose...">{{ COL_FIELD CUSTOM_FILTERS }}</ui-select-match>
Даже если у меня есть cellFilters, определенные в gridOption columnDefs, когда я проверяю переменную CUSTOM_FILTERS, он возвращается как неопределенный.
1 ответ
Вместо того, чтобы ссылаться на фильтр ячеек в раскрывающемся шаблоне, вы можете передать cellFilter
в gridOptions
как это -
Из примера на странице Брайана Ханна
$scope.gridOptions = {
rowHeight: 38,
columnDefs: [
{ name: 'name' },
{ name: 'age', type: 'number' },
{
name: 'gender',
editableCellTemplate: 'uiSelect.html',
editDropdownOptionsArray: [
'male',
'female',
'other'
],
cellFilter : 'customFilterName'
}
]
};