Ваш valueGetter возвращает строку. Таким образом, встроенные функции агрегирования, которые ожидают числа, не работают.
Попробуйте вместо этого значение valueGetter:
function priceValueGetter(params): number {
if (params.data && params.data.a && params.data.b) {
return params.data.a - params.data.b
}
return null;
}
Это не отформатирует, как вы хотите, но вы можете исправить добавив valueFormatter.
Еще один совет - учитывая, что у вас есть переменная с именем «EPrice», я предполагаю, что вы имеете дело с деньгами. Вы не должны зависеть от типа денежного числа Javascript, так как это, по сути, «число с плавающей точкой», и будут возникать ошибки округления. Есть много статей о том, как правильно обрабатывать денежные значения в Javascript - я лично использую порт Javascript класса Java BigDecimal, называемый 'big. js' , но Есть несколько других решений.
Редактировать - также будьте осторожны с использованием if
на number
- оно оценивается как false
, если число равно нулю. Если это то, что вы хотите, хорошо, но если это не так, настройте свою логику c соответственно.