{
field: 'containerType',
title: '箱型',
formatter: function (value) {
var msg = [[${@emptyContainer.getMessage(value)}]];
console.log(msg);
return msg;
}
},
这么写后台直接接受的参数是null
{
field: 'containerType',
title: '箱型',
formatter: function (value) {
var msg;
if (value == 'CONTAINER_TYPE_1') {
msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_1')}]];
}
if (value == 'CONTAINER_TYPE_2') {
msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_2')}]];
}
if (value == 'CONTAINER_TYPE_3') {
msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_3')}]];
}
return msg;
}
},
这么写就行,我服了
第一段代码中的问题可能在于 `${@emptyContainer.getMessage(value)}` 这一段,在 formatter 函数返回之前就执行了,而此时 `value` 的值可能还未被正确地设置。因此,后台接受的参数就是 null。
第二段代码没有这个问题,因为每个取值都是在条件语句内部执行的,因此不需要担心 `${@emptyContainer.getMessage(value)}` 被过早调用。
因此,可以通过在formatter函数中添加条件语句解决这个问题,这样就可以在正确的时间内获取到 `value` 的值,并正确地调用 `@emptyContainer.getMessage()` 函数了。