Javascript 如何使用SAPUI5将数组加载到片段内部的下拉列表中?

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

我一直试图在片段中加载数组,但无法在下拉列表中列出数组绑定值

最初,我将值存储到空数组中,然后将数组传递到json模型中,以将数组值列在下拉列表中

以下是存储数组值并传递给json模型的代码:

 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);
    }
);