AG-GRID值格式化器不能用于动态生成的货币。

问题描述 投票:0回答:1

我试图在我的AG-GRID表中使用一个值格式来显示货币信息。

当我在表格中设置了一个硬编码值时,它就能完美地工作,在这种情况下,"欧元 "的unicode就可以了。

currencyFormatter(params) {
  return '\u20ac' + params.value;
}

然而,我不知道我需要预先将数据格式化成什么货币,因为它是动态生成的。如果我试着使用一个在我的组件中可用的值(像下面这样),它就不喜欢了!它在控制台中抛出的是:"你的数据是什么?"。

currencyFormatter(params) {
  return this.currencyUnicode + params.value;
}

它在控制台中抛出的是。

TypeError: Cannot read property 'defaultCurrency' of undefined

似乎所有'this'组件的变量在currencyFormatter中都不可用。有什么方法可以让它正常工作吗?

ag-grid ag-grid-angular
1个回答
2
投票

为了访问你的组件变量,你必须绑定你的组件上下文----。这个valueFormatter

...
name : 'Currency',
field : 'currency',
valueFormatter: this.currencyFormatter.bind(this) //bind your component's context here
...

currencyFormatter(params) {
  return this.currencyUnicode + params.value;
}

这是一个常见的javascript问题。这里有一个很好的 阅读

另外,这 回答 描述了您可以引用的2种方式 this.

© www.soinside.com 2019 - 2024. All rights reserved.