Вопрос

Я использую 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) должна быть заключена в экранированные кавычки.Я использовал возраст в качестве примера ключа.Поскольку в этом примере это числовое значение, кавычки вам не нужны.

Вот Планкер

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top