Angularjs 将ng click事件插入ng网格

Angularjs 将ng click事件插入ng网格,angularjs,events,angular-ui,ng-grid,angularjs-ng-click,Angularjs,Events,Angular Ui,Ng Grid,Angularjs Ng Click,我想做一些我不知道是否可能的事情 HTML 海关抢劫犯 JS //main.js var-app=angular.module('myApp',['ngGrid']); 应用程序控制器('MyCtrl',函数($scope){ $scope.myData=[{name:“Moroni”,年龄:50}, {姓名:“Tiancum”,年龄:43}, {姓名:“雅各布”,年龄:27}, {姓名:“尼菲”,年龄:29}, {姓名:“埃诺斯”,年龄:34}]; $scope.gridOptions={

我想做一些我不知道是否可能的事情

HTML

海关抢劫犯
JS
//main.js
var-app=angular.module('myApp',['ngGrid']);
应用程序控制器('MyCtrl',函数($scope){
$scope.myData=[{name:“Moroni”,年龄:50},
{姓名:“Tiancum”,年龄:43},
{姓名:“雅各布”,年龄:27},
{姓名:“尼菲”,年龄:29},
{姓名:“埃诺斯”,年龄:34}];
$scope.gridOptions={data:'myData',

cellTemplate:“

这些定义适用于我:

  $scope.gridOptions = {
    data: 'myData',
    columnDefs: [{
        field: 'name',
        displayName: 'Name',
        cellTemplate: '<div  ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>'
      }, {
        field: 'age',
        displayName: 'Age',
        cellTemplate: '<div  ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>'
      }

    ]
  };
$scope.gridOptions={
数据:“myData”,
columnDefs:[{
字段:“名称”,
displayName:'名称',
单元格模板:“”
}, {
字段:“年龄”,
displayName:“年龄”,
单元格模板:“”
}
]
};

查看您的forked Plunker

他们github站点上的文档非常旧

下面是指向此问题的正确页面的链接。

无法工作

$scope.ShowDetails=函数(_obj)
$scope.ShowDetails=function(_obj)
{
   alert('Hi! ' + _obj);
}

$scope.gridOptions = {
    columnDefs: [
      { name: 'Search', field: 'Col1', cellTemplate: '<div ng-click="grid.appScope.ShowDetails(row)"><img src="/images/search.png" /></div>' },
      { name: 'Col2', displayName: 'Col2' },
    ]};
{ 警报('Hi!'+\u obj); } $scope.gridOptions={ columnDefs:[ {name:'Search',field:'Col1',cellTemplate:'}, {name:'Col2',displayName:'Col2'}, ]};

这里是将事件附加到ui网格单元格的示例。

谢谢,但它不起作用。你知道为什么吗?你尝试过plunker吗?这是对这个问题的一个非常晚的回答,但我处理的是同一个问题。@main guy在回答中给出的示例并没有真正解决输入控件上单击事件的问题。这里是一个有效的例子。hth。正确的答案是使用
grid.appScope
,如下所述:是的,我知道。但是这个问题是关于ng grid而不是ui grid的。无论如何,谢谢你指出这一点。对!谢谢你更新这个。我忘了提到
ng grid
已经被弃用,取而代之的是
ui grid
。如果你可以的话移动到
ui网格
,你应该移动并且应该使用
grid.appScope
。但是当你想移动但不能移动时会发生什么呢?安德森先生?:-)辞职,律师站起来,去健身房!
  $scope.gridOptions = {
    data: 'myData',
    columnDefs: [{
        field: 'name',
        displayName: 'Name',
        cellTemplate: '<div  ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>'
      }, {
        field: 'age',
        displayName: 'Age',
        cellTemplate: '<div  ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>'
      }

    ]
  };
        yourCtrl.gridOptions = {
            enableFiltering: true,
            enableHiding : false,
            enableSorting: true,
            appScopeProvider : yourCtrl,
            rowTemplate: '<div ng-click="grid.appScope.doSomething(row)" ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid" class="ui-grid-cell" ng-class="col.colIndex()" ui-grid-cell></div>',
        };

        yourCtrl.doSomething = function(row) {
            alert("lala");
        }
ng-click="grid.appScope.doSomething"
$scope.ShowDetails=function(_obj)
{
   alert('Hi! ' + _obj);
}

$scope.gridOptions = {
    columnDefs: [
      { name: 'Search', field: 'Col1', cellTemplate: '<div ng-click="grid.appScope.ShowDetails(row)"><img src="/images/search.png" /></div>' },
      { name: 'Col2', displayName: 'Col2' },
    ]};