Javascript 如何使用SAPUI5将数组加载到片段内部的下拉列表中?
我一直试图在片段中加载数组,但无法在下拉列表中列出数组绑定值 最初,我将值存储到空数组中,然后将数组传递到json模型中,以将数组值列在下拉列表中 以下是存储数组值并传递给json模型的代码:Javascript 如何使用SAPUI5将数组加载到片段内部的下拉列表中?,javascript,arrays,sapui5,sap-fiori,Javascript,Arrays,Sapui5,Sap Fiori,我一直试图在片段中加载数组,但无法在下拉列表中列出数组绑定值 最初,我将值存储到空数组中,然后将数组传递到json模型中,以将数组值列在下拉列表中 以下是存储数组值并传递给json模型的代码: var value = oEvent.getSource().getParent().getBindingContext().getPath(); var valueind = value.split("/"); this.indexj = valueind[2]; var tabley = t
var value = oEvent.getSource().getParent().getBindingContext().getPath();
var valueind = value.split("/");
this.indexj = valueind[2];
var tabley = this.getView().byId("tablez");
var count = tabley.getItems().length;
for (var i = 0; i < count; i++) {
this.ops1 = tabley.getItems()[i].getCells()[0].getValue();
this.objy= {
"Opeartion": this.ops1,
};
console.log("this.objy", this.objy);
empOper.push(this.objy);
}//For Loop Closed
console.log("empOper", empOper);
this.objy = sap.ui.core.Fragment.byId("Operationsfragment", "operations");
var seamoModelccd80 = new sap.ui.model.json.JSONModel();
seamoModelccd80.setData({
empOper: empOper
});
this.objy.setModel(seamoModelccd80);
console.log("this.objy", this.objy);
console.log("seamoModelccd80", seamoModelccd80);
var value=oEvent.getSource().getParent().getBindingContext().getPath();
var valueind=价值分割(“/”);
this.indexj=valueind[2];
var tabley=this.getView().byId(“tablez”);
var count=tabley.getItems().length;
对于(变量i=0;i
以下是片段视图的代码:
<ComboBox id="operations" value="{path='/empOper'}" editable="true" enabled="true" visible="true" width="auto" valueState="None"
change="ChangOpera">
<!--<core:Item text="{Name}"/>-->
</ComboBox>
以下是我试图实现的目标:
非常感谢任何帮助,请
根据@Voyager的回答:
var sValue = "";
for (var i = 0; i < count; i++) {
sValue = tabley.getItems()[i].getCells()[0].getValue();
empOper.push({
"Opeartion": sValue
});
}
var seamoModelccd80 = new sap.ui.model.json.JSONModel(); // created a JSON model
seamoModelccd80.setData({ // Set the data to the model using the JSON object
defined already
empOper: empOper
});
var oView = this.getView();
Fragment.load({
name: "fragments.Operationsfragment.Operations",
id: oView.getId(),
controller: this
}).then(
function(oComboBox) {
oView.addDependent(oComboBox);
oComboBox.setModel(seamoModelccd80);
}
);
<ComboBox id="operations" items="{path: '/empOper', templateShareable: 'false'}">
<items>
<core:ListItem key="{Name}" text="{Name}"/>
</items>
</ComboBox>
var sValue=”“;
对于(变量i=0;i
在清单中声明JSON模型,不使用数据源
然后在控制器中设置数据并绑定组合框。在无数据源的清单中声明JSON模型
然后在控制器中设置数据并绑定组合框。必须正确绑定组合框的项聚合,并为聚合提供模板。由于“items”不是ComboBox的默认聚合,因此必须专门编写聚合标记(items)
我认为/希望这能解决您的所有问题。您必须正确绑定组合框的项聚合,并为聚合提供一个模板。由于“items”不是ComboBox的默认聚合,因此必须专门编写聚合标记(items)
我认为/希望这能解决您的所有问题。谢谢您的回答。。我已经更新了我的代码,你能查一下吗。。。现在阵列正在复制,在下拉视图中显示空值。我还附上了我的控制台日志。。不知道我在哪里出错我编辑了我的答案,有一个错误。确保修复循环中“操作”中的打字错误以及组合框中的ListItem模板绑定(键和文本)。如何在输入中使用此选项而不是id组合框?只需将组合框更改为输入,“items={path…}”更改为“suggestionItems={path…}”,将“items={path…}”更改为“suggestionItems={path…}”,并将“更改为”。如果您最初的问题回答正确,请为进一步的问题启动一个新的线程。感谢您的回答。。我已经更新了我的代码,你能查一下吗。。。现在阵列正在复制,在下拉视图中显示空值。我还附上了我的控制台日志。。不知道我在哪里出错我编辑了我的答案,有一个错误。确保修复循环中“操作”中的打字错误以及组合框中的ListItem模板绑定(键和文本)。如何在输入中使用此选项而不是id组合框?只需将组合框更改为输入,“items={path…}”更改为“suggestionItems={path…}”,将“items={path…}”更改为“suggestionItems={path…}”,并将“更改为”。如果您最初的问题回答正确,请为进一步的问题启动一个新的线程。
<ComboBox id="operations" items="{path: '/empOper', templateShareable: 'false'}">
<items>
<core:ListItem key="{key}" text="{Operation}"/>
</items>
</ComboBox>
var sValue = "";
for (var i = 0; i < count; i++) {
sValue = tabley.getItems()[i].getCells()[0].getValue();
empOper.push({
"key": i,
"Operation": sValue
});
}
var oView = this.getView();
Fragment.load({
name: "NAMESPACE.PATH.TO.Operationsfragment",
id: oView.getId(),
controller: this
}).then(
function(oComboBox) {
oView.addDependent(oComboBox);
oComboBox.setModel(seamoModelccd80);
}
);