将整个对象传递给ng-grid中的cellFilter函数

时间:2014-04-03 18:01:04

标签: javascript angularjs ng-grid

在ng-grid中,我需要一个列来显示依赖于我的对象的多个属性的值。所以我需要传递整个对象而不仅仅是其中一个属性。

在项目的另一个位置,我通过将对象包装在另一个对象(例如value属性)中解决了这个问题,因此例如一列绑定到value.FirstName而另一列刚绑定到valuefield

有没有办法避免这种扭曲,例如只传递一个空的field属性,或者只是删除{{1}}属性?这些方法似乎都不起作用。

由于

2 个答案:

答案 0 :(得分:4)

不要设置field,然后在row.entity中使用cellTemplate。这是一个例子:

$scope.myData = [
  {
    firstName: 'Bob',
    lastName: 'Smith',
    age: 43
  },
  {
    firstName: 'Joe',
    lastName: 'Williams',
    age: 39
  }
];

$scope.gridOptions = {
  data: myData,
  colDefs: [
    {
      displayName: 'Name',
      cellTemplate: '<div>{{row.entity.firstName}} {{row.entity.lastName}}</div>'
    },
    {
      displayName: 'Age',
      field: age
    }
  ]
};

这将产生如下表:

+--------------+-----+
| Name         | Age |
+--------------+-----+
| Bob Smith    | 43  |
+--------------+-----+
| Joe Williams | 39  |
+--------------+-----+

答案 1 :(得分:1)

您可以使用row.entity对象,该对象可以从单元格模板的任何位置引用。在构建网格时,它链接到当前行的整个对象。