Шаблон ячейки в ng-grid
-
26-12-2019 - |
Вопрос
Я использую cell template
свойство ng-grid
.Я определяю одну функцию в директиве.В этой же директиве я определяю свой grid-options
.Вот код:
data: 'mydata',
columnDefs: [
{field:'Timeout', displayName:'Delay', cellTemplate: '<a href=""
ng-click= "Report(Alert,Key,1000,1,1);"><div class=\"ngCellText\">{{row.getProperty(col.field)}}</div></a>'}
]
и функция Report
также определяется в той же директиве.
ng-click
работает всякий раз, когда на него нажимают.Функция вызывается, но какую бы входную переменную я ни передал (Alert
и Key
) не передается в функцию, тогда как остальные три параметра 1000,1,1
проходят.Alert
— это жестко закодированная строка, которую я хочу передать.Key
— это одно из массивов целочисленных значений в «mydata».Я проверил с помощью alert
для этих двух конкретных значений в функции отображается НЕОПРЕДЕЛЕННОЕ.
Помогите пожалуйста правильно вызвать функцию.Заранее спасибо.
Решение
Вы хотите что-то вроде этого:
$scope.Report=function(msg,key,v1,v2,v3){
//use v1, v2, v3 for whatever you like
alert(msg+':'+key);
};
$scope.gridOptions = {
data: 'myData',
columnDefs: [
{
field: 'name',
displayName: 'Delay',
cellTemplate: '<a href="" ng-click= "Report(\'Alert\',row.entity.age,1000,1,1);"><div class=\"ngCellText\">{{row.getProperty(col.field)}}</div></a>'
}, {
field: 'age'
}
]
};
Обратите внимание, что жестко запрограммированная строка (msg) должна быть заключена в экранированные кавычки.Я использовал возраст в качестве примера ключа.Поскольку в этом примере это числовое значение, кавычки вам не нужны.
Вот Планкер