2016-08-02 56 views
0

如果Begda已設置,我想顯示「 - 」,否則只顯示「」。當Begda設置時,輸出顯示「NaN」,否則顯示正確的類型。所以三元運算符工作,但格式化程序不起作用。該Begda字段包含實際日期對象:我的列表項目模板有什麼問題?

this._oSelectedTrainingsModel.getData()[0].Begda 
15:31:37.916 Date 2016-09-17T00:00:00.000Z 

var oItemTemplate = new sap.m.StandardListItem({ 
       title: "{Title}", 
       description: "{= ${Begda} ? ${Type} - ${ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium' }} : ${Type} }", 
       icon: "{icon}", 
       iconInset: false 
      }); 

我也以同樣「男」輸出試過這樣:

var oItemTemplate = new sap.m.StandardListItem({ 
      title: "{Title}", 
      description: "{= ${Begda} ? ${Type} - ${Begda}.toLocaleDateString() : ${Type} }", 
      icon: "{icon}", 
      iconInset: false 
     }); 

回答

0

的問題是,該框架試圖在給定值適用減法。如果你想在你的表達式中包含 - 字符,就像字符串連接+ '-' +一樣。

也建議將複雜的計算放在括號內。 這裏是固定的代碼(括號內是可選):

var oItemTemplate = new sap.m.StandardListItem({ 
      title: "{Title}", 
      description: "{= ${Begda} ? (${Type} + '-' + ${ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium' }}) : ${Type} }", 
      icon: "{icon}", 
      iconInset: false 
     }); 

注意,表達結合應爲簡單的邏輯僅使用,並且這一個似乎是其可以被移動到一個格式化功能更復雜的。