Я пытался загрузить массив внутри фрагмента, но не смог перечислить значение, связанное с массивом, в раскрывающемся списке.
Первоначально я сохранил значения в пустой массив, а затем передал массив в модель 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);
Вот код для просмотра фрагментов:
<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>