在angular ui网格上设置列默认值

时间:2015-09-22 19:13:15

标签: angularjs angular-ui-grid

我有一个包含大量列的表,有些行可能有未定义的值,所以我想根据列显示默认文本而不是空单元格。我该如何设置该值?

我希望这样的事情:

columnDefs: [
    {name: 'Code', field: 'code', default: 'My default value for code column'},
    {name: 'Name', field: 'name', default: 'My default value for name column'}
];

由于

3 个答案:

答案 0 :(得分:2)

是的,你可以使用cellTemplate,看起来,它最容易:

columnDefs: [
  {name: 'Code', field: 'code', cellTemplate:'<div>{{row.entity.code="My default value for code column"}}</div>'},
  {name: 'Name', field: 'name', cellTemplate:'<div>{{row.entity.name="My default value for name column"}}</div>'}
];

答案 1 :(得分:1)

使用cellTemplates

  var codeTemplate = '<div ng-if="row.entity.code">{{row.entity.code}}</div>' +
    '<div ng-if="!row.entity.code">My Default Value for code column</div>';

  var nameTemplate = '<div ng-if="row.entity.name">{{row.entity.name}}</div>' +
    '<div ng-if="!row.entity.name">My Default Value for name column</div>';

  $scope.gridOptions = {
    enableSorting: true,
    columnDefs: [{
      name: 'Code',
      field: 'code',
      cellTemplate: codeTemplate
    }, {
      name: 'Name',
      field: 'name',
      cellTemplate: nameTemplate
    }],
    data: [{
      "code": "122",
      "name": "Maximus"
    }, {
      "code": "123",
      "name": "Minimus"
    }, {
      "code": null,
      "name": "Nocodeus"
    }, {
      "code": '',
      "name": "Emptyus"
    }, {
      "code": '124',
      "name": ""
    }, {
      "code": '',
      "name": ""
    }]
  };

示例是here

答案 2 :(得分:1)

我通过将表达式应用于valueFormatter来实现了

{{1}}

我认为也可以通过将表达式应用于valueGetter来实现