2015-11-06 25 views
-3

我試圖將一個完整的組合框與JSON視圖中的模板綁定。我將模型綁定到視圖,將它與我在控制器中創建的模板綁定是沒有問題的。但是,我怎麼才能在視圖中實現這一點?如何在JSON視圖中完整地綁定組合框

我面向自己在這個例子中,這是使用XML訪問量:http://scn.sap.com/thread/3689278

我不得不掩蓋和凝結的代碼,所以也許認爲心不是以這種形式 這裏是我的(濃縮)查看正常工作:

{ 
"Type": "sap.ui.core.mvc.JSONView", 
"controllerName": "appname.controller.controllerName", 
"height": "100%", 
"width": "100%", 
"content": [ 
    { 
     "Type": "sap.m.Page", 
     "title": "Suche", 
     "content": [ 
      { 
       "Type": "sap.ui.commons.ComboBox", 
       "id": "myCbo", 
       "maxPopupItems": 5, 
       "items": { 
        "path": "{ModelName>ItemsForMyCbo}", 
        "template": { 
         "Type": "sap.ui.core.ListItem" 
         "text": "{Value}", 
         "key": "{Key}", 
         "enabled": true, 
         "icon": "", 
         "additionalText": "", 
        } 
       } 
      } 
     ] 
    } 
] 
} 

這裏是我的模型:

screenModel : { 

     ItemsForMyCbo : [ 
      { 
       Key : "1", 
       Value : "Val1" 
      }, 
      { 
       Key : "2", 
       Value : "Val2" 
      }, 
      { 
       Key : "3", 
       Value : "Val3" 
      } 
     ] 
    } 

和控制器的部分:

var oModel = new sap.ui.model.json.JSONModel() 
    oModel.setData(this.screenModel); 

    this.getView().setModel(oModel, "ModelName"); 

回答

0

最後我能夠完整的組合框

{ 
"items": { 
    "path": "ModelName>/ItemsForMyCbo", 
    "template": { 
     "Type": "sap.ui.core.ListItem", 
     "text": "{ModelName>Value}", 
     "key": "{ModelName>Key}" 
    } 
}, 
"Type": "sap.ui.commons.ComboBox", 
"width": "150px", 
"id": "myCbo" 
} 

它有點混亂使用綁定(括號)模板的屬性而不是組合框路徑屬性

綁定
+1

這並不是令人困惑的......該屬性已被稱爲'path',因此API期待正確的路徑,而不是在大括號之間寫入的東西。但在XML視圖中,你只有普通的字符串,沒有'path'屬性(你也可以在XML視圖中使用路徑,但那是另一回事)。所以他們想出了大括號來區分路徑和基本字符串。聽起來很直接。 – Marc

3

您的綁定需要進行以下調整。請參閱development guide以瞭解綁定語法。

"items": { 
    "path": "ModelName>/ItemsForMyCbo", 
    "template": { 
     "Type": "sap.ui.core.ListItem" 
     "text": "{ModelName>Value}", 
     "key": "{ModelName>Key}", 
     "enabled": true, 
     "icon": "", 
     "additionalText": "", 
    } 

}

+0

thx爲你的努力,但你使用你的綁定錯誤。在path-property中,綁定語法被「忽略」。我假設路徑屬性已經在綁定上下文中,你不必使用大括號。看看我的答案 – deterministicFail

+0

我解決了答案。這是一個古老的習慣,因爲我只使用XML視圖,而在任何地方都使用大括號。 – matbtt

+0

這就是問題,在文檔和示例中總是xml視圖。因此,將xml轉換爲json的嘗試和錯誤 – deterministicFail