2016-06-16 85 views
0

有沒有辦法在formatter函數中使用this運算符?我的意思是this對使用​​格式化程序的組件的引用。例如,我得到這個代碼:。這裏面fromatter功能

metadata : { 
     //includes : [ "../../css/orgstructure.css" ], 
     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 : [ { 
         path : "SHORT_TEXT", 
         type : new sap.ui.model.type.String() 
        }, { 
         path : "ID", 
         type : new sap.ui.model.type.String() 
        } ], 
        formatter : function(text, id) { 
         if (text != null && id != null) { 
          if(this.getProperty("showId)){ 
           return text + " (" + id + ")"; 
          }else{ 
           return text; 
          } 
         } 

         return ""; 
        } 
       }) 
      }) 

當我想用this.getProperty("showId)我得到一個異常訪問屬性showId,這個功能並不存在this。我知道如何綁定this到事件的功能,但是當函數被調用這個樣子,我#已經得到了不知道如何處理這一點;)

回答

2

使用下面的語法只是綁定this的功能:

formatter : function(text, id) { 
    if (text != null && id != null) { 
     if(this.getProperty("showId)){ 
      return text + " (" + id + ")"; 
     }else{ 
      return text; 
     } 
    } 
    return ""; 
}.bind(this) 
+0

呃這麼簡單:)謝謝你幫助我 – Chris