我知道在here之前已经问过这个问题,但是答案并没有帮助我。
这是我的控制器代码:
sap.ui.define([
// there's more stuff importet here
'project/util/formatter',
], function (formatter ) {
'use strict';
return BaseController.extend('project.controller.ManualUpload', {
formatter:formatter,
onShowErrors: function() {
//some other stuff happening here
_.forEach(checkValidations, entry => {
var errorMessage = oData[entry].ERROR_MSG;
if(errorMessage) {
var rowSettingsTemplate = new sap.ui.table.RowSettings({ highlight: "{ path: 'odataDetails>ERROR_MSG', formatter: '.formatter.errorStatus' }" });
backendTable.setRowSettingsTemplate(rowSettingsTemplate);
}
});
},
});
});
这是我的格式化程序,带有errorStatus()函数
sap.ui.define(function() {
'use strict';
return {
errorStatus: function(errorMessage) {
if (_.isEmpty(errorMessage)) {
return 'None';
} else {
return 'Error';
}
},
};
});
找到了格式化程序,所以这不是问题。我还在控制器的开头声明了格式化程序,所以也应该没问题。另一个建议的解决方案是不带括号的函数调用。我不这样做,所以也不会成为问题。
错误消息是:
未找到格式化程序函数.formatter.errorStatus
答案 0 :(得分:1)
我认为您尝试绑定的方式是错误的。
在js视图中,您可以进行如下绑定:
var rowSettingsTemplate = new sap.ui.table.RowSettings({
highlight: {
path: "odataDetails>ERROR_MSG",
formatter: formatter.errorStatus
}
});
希望这会有所帮助。