`this`里面的格式化函数

问题描述 投票:0回答:1

有没有办法在格式化程序函数中使用this运算符?我的意思是this,我使用格式化程序的组件的引用。例如,我得到了这段代码:

metadata: {
  properties: {
    // ...
    showId : { type : "boolean", defaultValue : true },
    // ...
  }
}
//Some view stuff ...

columns: [
  new sap.ui.table.Column({
    label: "Beschreibung ( ID )",
    filterProperty: "SHORT_TEXT",
    template: new sap.m.Text().bindProperty("text", {
      parts: [/*...*/],
      formatter: function(text, id) {
        if (text != null && id != null) {
          if(this.getProperty("showId)){
            return text + " ( " + id + " )";
          } else {
            return text;
          }
        }
        return "";
      }
    }),
  })
]

当我想用showId访问属性this.getProperty("showId)时,我得到一个例外,这个函数不存在于this。我知道如何将this绑定到事件函数,但是当这样调用函数时,我不知道如何处理这个;)

javascript sapui5 this
1个回答
2
投票

只需使用以下语法将this绑定到函数:

formatter : function(text, id) {
    if (text != null && id != null) {
        if(this.getProperty("showId)){
            return text + " ( " + id + " )";
        }else{
            return text;
        }
    }
    return "";
}.bind(this)
© www.soinside.com 2019 - 2024. All rights reserved.