Angularjs ng网格单元模板和分组:我可以更改';分组';一行

Angularjs ng网格单元模板和分组:我可以更改';分组';一行,angularjs,ng-grid,celltemplate,Angularjs,Ng Grid,Celltemplate,我一直在检查ng grid,并将columnDefs更改为对某些列使用不同的cellTemplate。此模板不显示实际值,而是在另一个对象中查找,以便最终用户更容易阅读(基本上是一个外键id,它被转换为人类可以理解的内容) 当我在gridOptions中启用showGroupPanel:true时,您可以将一列拖动到“分组”栏,结果将被分组 当我对其中一列编辑模板时,它不使用我的cellTemplate,并再次显示id 是否有办法确保,在组的标题中,我可以使用自己的模板,而不是只显示值的ng g

我一直在检查ng grid,并将columnDefs更改为对某些列使用不同的cellTemplate。此模板不显示实际值,而是在另一个对象中查找,以便最终用户更容易阅读(基本上是一个外键id,它被转换为人类可以理解的内容)

当我在gridOptions中启用showGroupPanel:true时,您可以将一列拖动到“分组”栏,结果将被分组

当我对其中一列编辑模板时,它不使用我的cellTemplate,并再次显示id

是否有办法确保,在组的标题中,我可以使用自己的模板,而不是只显示值的ng grid

[更新] 一些代码(简化为1列以仅显示其本质)可能更容易理解(任何代码错误都是打字错误,这不是我真实代码的复制粘贴):

HTML:

))

您可以替换此:

var colDef1 = { 'field': 'Topic' };
colDef1.cellTemplate = '<label ng-class="\'colt\' + col.index" class="ng-pristine ng-valid colt3" style="width: 90%" >{{topicid_fkvalues[ COL_FIELD ]}} ({{COL_FIELD}})</label>';
var colDef1 = { 'field': 'Topic' };
colDef1.cellTemplate = '<label ng-class="\'colt\' + col.index" class="ng-pristine ng-valid colt3" style="width: 90%" >{{topicid_fkvalues[ COL_FIELD ]}} ({{COL_FIELD}})</label>';
它将添加第二个参数为$scope.topicidfkuvalues的筛选器(此筛选器也将在“聚合”视图中使用)。因此,如果您有具有不同翻译的不同列,您仍然可以使用相同的筛选器,但可以为翻译使用多个范围变量


希望这是有意义的,并帮助一些可能有相同问题的人…

解决方案

我想我找到了一个很好的解决办法

结果证明我不需要细胞模板,只需要一个过滤器

因此,如果您在模块上定义了一个新过滤器,如下所示:

app.filter( 
    'translateForeignKey', 
    function() {
        return  function( fk, fkValues ) {
                    return fkValues[ fk ];
                }
        ;
    }
app.filter( 
    'translateForeignKey', 
    function() {
        return  function( fk, fkValues ) {
                    return fkValues[ fk ];
                }
        ;
    }
))

您可以替换此:

var colDef1 = { 'field': 'Topic' };
colDef1.cellTemplate = '<label ng-class="\'colt\' + col.index" class="ng-pristine ng-valid colt3" style="width: 90%" >{{topicid_fkvalues[ COL_FIELD ]}} ({{COL_FIELD}})</label>';
var colDef1 = { 'field': 'Topic' };
colDef1.cellTemplate = '<label ng-class="\'colt\' + col.index" class="ng-pristine ng-valid colt3" style="width: 90%" >{{topicid_fkvalues[ COL_FIELD ]}} ({{COL_FIELD}})</label>';

它将添加第二个参数为$scope.topicidfkuvalues的筛选器(此筛选器也将在“聚合”视图中使用)。因此,如果您有具有不同翻译的不同列,您仍然可以使用相同的筛选器,但可以使用多个范围变量进行翻译。

您好,欢迎使用So,请提供一些您尝试过的代码示例,然后我们可以帮您。您是否也签出了aggregateTemplate?相关的SO帖子是:并且他们为分组行添加了
选项.aggregateTemplate
var colDef1 = { 'field': 'Topic' };
colDef1.cellTemplate = '<label ng-class="\'colt\' + col.index" class="ng-pristine ng-valid colt3" style="width: 90%" >{{topicid_fkvalues[ COL_FIELD ]}} ({{COL_FIELD}})</label>';
var colDef1 = { 'field': 'Topic' };
colDef1.cellFilter = 'translateForeignKey: topicid_fkvalues';