Я хочу скрыть значок + в крайнем левом столбце и добавить еще один значок.
Когда пользователь щелкает новый значок, я хочу программно расширить эту конкретную строку.
Я вижу, что есть gridApi.expandable.expandAllRows();
Есть ли способ расширить только одну строку?
Ответ 1 · рейтинг 3 · Kathir
Если все, что вам нужно, это изменить значок плюса по умолчанию на другой значок, вы можете просто переопределить шаблон для expandableRowHeader.
$templateCache.put('ui-grid/expandableRowHeader',
"<div class=\"ui-grid-row-header-cell ui-grid-expandable-buttons-cell\"><div class=\"ui-grid-cell-contents\"><i ng-class=\"{ 'ui-grid-icon-plus-squared' : !row.isExpanded, 'ui-grid-icon-minus-squared' : row.isExpanded }\" ng-click=\"grid.api.expandable.toggleRowExpansion(row.entity)\"></i></div></div>"
);
Вы можете изменить ng-class=\"{ 'ui-grid-icon-plus-squared' : !row.isExpanded, 'ui-grid-icon-minus-squared' : row.isExpanded }\" и заменить их на другой значок по вашему выбору.
Ответ 2 · рейтинг 5 · Idan Gozlan
Вы можете использовать функцию toggleRowExpansion, добавьте этот атрибут к нужному элементу, который будет запускать этот переключатель:
ng-click="grid.api.expandable.toggleRowExpansion(row.entity)"