AngularJS + NG-Grid 将 row.column.field 传递到 ng-click 事件中

AngularJS + NG-Grid pass row.column.field into ng-click event

本文关键字:ng-click 事件 field NG-Grid row column AngularJS      更新时间:2023-09-26

如何将{{row.getProperty(col.field)}}传递到ng-click? 发生的情况是 id 没有传播回来,但网格使用 id 正确呈现。

法典:

var app = angular.module('testing',['ngGrid']);
app.config(['$locationProvider', function($locationProvider)  
{  
       $locationProvider.html5Mode(true);
}]);    
app.controller('TestCtrl',function($scope)  
{  
      $scope.details = []; //whatever dummy data  
      $scope.loadById = function(id)  
      {  
            $window.location.href= 'newPage/?id='+id;
      };  
      $scope.gridOptions =  
      {  
           data: 'details',  
           columnDefs:[{field:'id',DisplayName:'id',  
                 cellTemplate:'<div class="ngCellText" ng-class="col.colIndex()"><a ng-click="loadById({{row.getProperty(col.field)}})">{{row.getProperty(col.field)}}</a></div>'  
              }]
      };    
});  

您可以在 ng-click 中传递行,而不仅仅是双括号表达式输出的值。

你的单元格模板变成这个

cellTemplate:'<div class="ngCellText" ng-class="col.colIndex()"><a ng-click="loadById(row)">{{row.getProperty(col.field)}}</a></div>' 

你的函数变成这个

$scope.loadById = function(row) {  
   window.console && console.log(row.entity);
   $window.location.href= 'newPage/?id='+ row.entity.id;
};