У меня есть сетка пользовательского интерфейса, основанная на наведении мыши пользователя на определенную строку, мне нужно показать кнопку в ячейке этой конкретной строки. Я попытался использовать шаблон строки, в котором я буду вызывать метод, используя «grid.appScope, имя_функции ()». Но это не работает. Под нами мой код. 1.Параметры сетки:
$scope.gridOptions = {
headerTemplate: '/SourceHtml/Templates/HomeHeaderTemplate.html',
rowTemplate: rowTemplate(),
data: 'glues',
enableRowSelection: false,
enableCellEditOnFocus: true,
columnDefs:
[{ field: 'Name', displayName: 'Name', enableCellEdit: false },
{ field: 'Brand', displayName: 'Brand', enableCellEditOnFocus: true },
{ field: 'Quarter', displayName: 'Quarter', enableCellEditOnFocus: true },
{ field: 'Modified', displayName: 'Modified', enableCellEditOnFocus: true },
{ name: 'report', displayName: 'report', cellTemplate: '<button id="editBtn" type="button" class="btn-primary"><span class="glyphicon glyphicon-calendar"><span>Reports</span></span></button> ' },
{ name: 'edit', displayName: 'Edit', cellTemplate: '<button id="editBtnDdl" type="button" class="btn-primary"><span class="glyphicon glyphicon-cog"><span>Edit</span></span></button> ' }]
};
2. Данные сетки:
$scope.glues = [{ Name: 'Bob', Brand: 'CEO', Quarter: '2015 Q1', Modified: 'Alexander' },
{ Name: 'Bob', Brand: 'CEO', Quarter: '2015 Q1', Modified: 'Alexander' }];
3.Шаблон строки:
function rowTemplate() {
return $timeout(function () {
alert("hi");
return '<div ng-click="grid.appScope.fnOne(row)" ng-mouseover="grid.appScope.fnOne(row)" ng-repeat="col in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ui-grid-cell></div>';
}, 6000);
}
4.Метод, вызываемый из rowTemplate:
$scope.fnOne = function (entity) {
alert(row);
};
Мой план состоит в том, чтобы вызвать метод fnOne() из rowTemplate и оттуда использовать ng-class="{hideByDefault:!inputs}", где отображение hideByDefault будет равным none, и установить для входных данных значение true в методе fnOne. Но метод fnOne не вызывается.
Пожалуйста, предложите любые идеи. Любые другие типы реализации также приветствуются.