Javascript 如何在Cx中的字段值表达式中使用自定义全局函数?
我有一个比较复杂的例子,需要将自定义格式应用于计算网格内字段值的JavaScript表达式Javascript 如何在Cx中的字段值表达式中使用自定义全局函数?,javascript,cxjs,Javascript,Cxjs,我有一个比较复杂的例子,需要将自定义格式应用于计算网格内字段值的JavaScript表达式 <Grid records:bind="$page.data" columns={[ { field: 'seatbeltViolations', header: 'Seatbelt Violations', format:'n;0', aggregate: 'sum',
<Grid records:bind="$page.data"
columns={[
{
field: 'seatbeltViolations',
header: 'Seatbelt Violations',
format:'n;0',
aggregate: 'sum',
aggregateField: 'seatbelts',
align: 'right'
},{
field: "distance",
header: "Distance",
format: "n;0",
aggregate: "sum",
aggregateField: "distance",
align: "right"
},{
field: 'seatbeltViolationsPer100Km',
header: 'Seatbelts per 100km',
format: 'n;1',
footer: {
expr: '0.1 * Math.round(10.0 * {$group.seatbelts}/{$group.distance})'
},
align: 'right'
}]} />
我希望我的问题足够清楚:)我认为最简单的方法是在这里使用
computable
而不是表达式。大致如下:
...
footer: computable("$group.seatbelts", "$group.distance", (p, q) =>
{
return q != 0 ? Format.value(100.0 * p / q, "n;1") : '--';
}),
...
这样,页脚可以任意复杂,并且可以轻松地将逻辑抽象为一个通用工厂函数,返回您想要的任何内容。举个例子,看看这把小提琴:
我认为最简单的方法是在这里使用
computable
而不是表达式。大致如下:
...
footer: computable("$group.seatbelts", "$group.distance", (p, q) =>
{
return q != 0 ? Format.value(100.0 * p / q, "n;1") : '--';
}),
...
这样,页脚可以任意复杂,并且可以轻松地将逻辑抽象为一个通用工厂函数,返回您想要的任何内容。举个例子,看看这把小提琴:
在字符串模板中使用表达式还有一个未记录的功能:
footer: {
tpl: '{[{$group.seatbelts} != 0 ? {$group.distance}/{$group.seatbelts} : null]:n;1}'
}
在字符串模板中使用表达式还有一个未记录的特性:
footer: {
tpl: '{[{$group.seatbelts} != 0 ? {$group.distance}/{$group.seatbelts} : null]:n;1}'
}
我认为这正是OP需要的。在本例中,处理诸如除零之类的内容在可计算环境中可能会更干净,但模板中的表达式是一个很好的特性。他们肯定会找到进入文档的方法。我认为这正是OP需要的。在本例中,处理诸如除零之类的内容在可计算环境中可能会更干净,但模板中的表达式是一个很好的特性。他们肯定会找到进入文档的方法。