Angularjs 如何在灵活的网格自定义单元格格式化程序中应用自定义Fliter格式化程序

Angularjs 如何在灵活的网格自定义单元格格式化程序中应用自定义Fliter格式化程序,angularjs,ecmascript-6,slickgrid,Angularjs,Ecmascript 6,Slickgrid,如何在slick grid自定义单元格格式设置程序中应用自定义角度过滤器格式设置程序 假设我有一个angular customer filter格式化程序,可以将日期从一种格式转换为另一种格式 var dateFilter = this.$filter('myDateFilterFormatter')('2006-04-07'); 它返回为4/7/06 如何在slick grid自定义单元格格式化程序中使用MyDateFilterMatter 我试过这种方法 this.dateFommatt

如何在slick grid自定义单元格格式设置程序中应用自定义角度过滤器格式设置程序

假设我有一个angular customer filter格式化程序,可以将日期从一种格式转换为另一种格式

var dateFilter = this.$filter('myDateFilterFormatter')('2006-04-07'); 
它返回为4/7/06

如何在slick grid自定义单元格格式化程序中使用MyDateFilterMatter

我试过这种方法

this.dateFommatter = function(row, cell, value, columnDef, dataContext){
            return "<p>"+ value | myDateFilterFormatter +"</p>";
        };
this.dateFommatter=函数(行、单元格、值、列定义、数据上下文){
返回“”+值| MyDateFilterMatter+”

”; };
并且也尝试一下

this.dateFommatter = function(row, cell, value, columnDef, dataContext){
                return "<p>"+ this.$filter('myDateFilterFormatter')(value) +"</p>";
            };
this.dateFommatter=函数(行、单元格、值、列定义、数据上下文){
返回“”+this.$filter('MyDateFilterMatter')(值)+“

”; };

这两条路都以错误告终。我无法在slick grid行格式化程序中应用自定义筛选器。您能否建议,如何在光滑网格中使用自定义过滤器。

函数中的
日期格式化程序
函数指函数本身

通常使用类似于

var self = this;

... code ...

this.dateFommatter = function(row, cell, value, columnDef, dataContext){
    return "<p>"+ self.$filter('myDateFilterFormatter')(value) +"</p>";
};
我想您是在询问访问
cellNode
。 你可以加上

var cellNode = grid.getCellNode(row, cell);
如果您愿意,请发送给格式化程序

从长远来看,如果您发现访问单元节点很有用,那么可以修改
格式化程序
函数以及对它的所有调用,将
单元节点
添加到参数列表的末尾。然而,这将是对slickgrid代码的修改


编辑:实际上我刚刚测试了这个,但它不起作用,因为在创建单元格时,在创建单元格之前会调用格式化程序。我已经在最新版本的SlickGrid中修改了格式化程序,这样您就可以选择返回一个对象
{text:'displayText',removeClasses:'class1 class2',addClasses:'class1'}
,而不是返回一个字符串,当应用格式化程序时,这些类将被删除并添加到单元格中。删除一系列类可以在应用正确的新类之前清除以前的格式化类。

谢谢,这对我很有用。为什么这个和自我之间有区别。无论如何,self是这个的引用?
这个
是一个特殊的javascript内置变量,它引用代码的上下文。在顶部,
this
指的是控制器,因此我们可以将变量
self
设置为它(我们也可以称它为
controller
或其他任何东西)。在函数中,
指的是函数,而不是控制器,因此我们使用前面定义的变量
self
来指控制器。谢谢。我现在明白了。但我还有一个问题。如何在元素returnbyformatter中使用ng click调用函数。
var cellNode = grid.getCellNode(row, cell);