我正在使用普通格式化程序来格式化简单 UI5 表中的所有相关列。然而,一列需要更复杂的转换,其中比较数据来自已经检索到数组中的数据库。该数组已被声明为具有“this”值的全局变量,可以在全局范围内使用。
但是,当我想在格式化程序函数中使用 this 时,这是未定义的,并且“this”控件指的是内部格式化程序函数。我根本无法引用任何全局控制器变量。
在bindProperty函数期间调用格式化程序,我尝试将数组作为部分参数传递,但不幸的是我收到错误,传递参数似乎只是字符串组件。
有没有办法在格式化程序中使用外部数组数据或模型或将它们传递给它。
尝试使用部件通过bindParameters传递数组值。
var that = this;
bindProperty(
"text", {
parts: [{ path: 'AA' },
{ path: 'A'},
{ path: that._C}],
{ path: that.array},
formatter: that.columnFormatter
这会引发绑定错误。
在格式化程序中,格式化程序函数不是一个单独的文件,而只是控制器中的一个函数。
尝试直接引用格式化程序中的数组。 例如。 this.array -> 未定义
默认情况下,格式化程序函数有自己的上下文,因此
this
指向函数的上下文,而不是控制器对象。在您的代码段中,您可以尝试通过以下方式更改格式化程序函数的上下文:
formatter: that.columnFormatter.bind(this)