Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SAPui5创建简单的sap.m.ComboBox_Javascript_Xml_Data Binding_Combobox_Sapui5 - Fatal编程技术网

Javascript SAPui5创建简单的sap.m.ComboBox

Javascript SAPui5创建简单的sap.m.ComboBox,javascript,xml,data-binding,combobox,sapui5,Javascript,Xml,Data Binding,Combobox,Sapui5,我有一个简单的模型,我想绑定到sap.m.ComboBox。数据如下所示: (2) ["Tabelle1", "Tabelle2"] 0: "Tabelle1" 1: "Tabelle2" 我所做的是: ... some unimportant stuff before... var sheets = new sap.ui.model.json.JSONModel(sheetNames); var comboBox = that.getView().byId("selectSheet"

我有一个简单的模型,我想绑定到sap.m.ComboBox。数据如下所示:

(2) ["Tabelle1", "Tabelle2"]
0: "Tabelle1"
1: "Tabelle2"
我所做的是:

... some unimportant stuff before...    
var sheets = new sap.ui.model.json.JSONModel(sheetNames);
var comboBox = that.getView().byId("selectSheet");
comboBox.setModel(sheets);
var oItemTemplate = new sap.ui.core.Item();
comboBox.bindItems("/sheets", oItemTemplate)
在我的XML视图中创建组合框:

<m:ComboBox id="selectSheet" items="{path: '/sheets'}" change="onSheetSelected">
    <core:Item />
</m:ComboBox>
映射名称现在如下所示:

(2) ["Tabelle1", "Tabelle2"]
0: "Tabelle1"
1: "Tabelle2"

您必须提供一个模板,用于指定组合框中的项的外观

在Javascript中创建绑定:

控制者:

var sheetNames = {myList : [{ Name : "Tabelle1"}, {Name : "Tabelle2"}]};
var sheets = new sap.ui.model.json.JSONModel(sheetNames);
var comboBox = that.getView().byId("selectSheet");
var oItemTemplate = new sap.ui.core.Item({

    text : '{Name}' // here goes your binding for the property "Name" of your item
});

comboBox.setModel(sheets);
comboBox.bindItems("/myList", oItemTemplate);
视图:

在XML中创建绑定

控制器:

var sheetNames = {myList : [{ Name : "Tabelle1"}, {Name : "Tabelle2"}]};
var sheets = new sap.ui.model.json.JSONModel(sheetNames);
var comboBox = that.getView().byId("selectSheet");

comboBox.setModel(sheets);
视图:

<m:ComboBox id="selectSheet" items="{path: '/myList'}">
    <core:Item text="{Name}"/> </m:ComboBox>


尝试将
文本
属性添加到您的项目中,也不要考虑js部分,将您的模型设置到视图中,然后在xml中进行绑定,这对readabilty@Erch但我的模型中没有任何“文本”或“关键”部分。没有对象,只有字符串。。我尝试了使用XML的方法,但是“sheets”模型没有在nit上设置,因此我的视图似乎没有获得数据..文本和键不是模型的属性,它们是控件的属性。。。。我的名字里没有“名字”。。那么我该如何访问它,但您需要列表中的对象。您可以在绑定之前映射它们:var list=[“Tabelle1”,“Tabelle2”];var mappedList=list.map(函数(tableName){return{Name:tableName};});好的,我明白了!我在问题中添加了一个更新,以显示我如何尝试实现您的解决方案,但它仍然没有绑定任何数据。。似乎很奇怪:您在模型中设置的其他数据是一个列表。但是你必须设置一个对象。如上面的例子所示。有一个属性为“myList”的对象,其中包含列表作为值。绑定中的绝对路径指向此列表-->comboBox.bindItems(“/myList”,oItemTemplate),在您的情况下,它将是:var mappedNames=uU9;.map(sheetNames,name=>{return{name:name});var data={“mappedNames”:mappedNames};var sheets=new sap.ui.model.json.JSONModel(数据);
<m:ComboBox id="selectSheet" items="{path: '/myList'}">
    <core:Item text="{Name}"/> </m:ComboBox>