将新项添加到列表

时间:2016-01-22 16:12:01

标签: sapui5

我正在使用SAPUI5,我想在按下按钮时动态添加项目。我有一个XML视图和一个XML模型。模型正确显示为List,我有一个表单来添加新项目。

我想将表单条目添加到List中。由于我的模型是XML模型,我尝试制作另一个JSONModel,但它不起作用。

XML视图

<Page>
    <Button text="Siguiente" press=".onPress"></Button>
    <List headerText="Productos" items="{/book}">
        <ObjectListItem title="{title}"
            type="Active"
            press=".handlePressItem">
        </ObjectListItem>
    </List>
    <form:SimpleForm id="f1" layout="ResponsiveLayout">
        <!-- here are the form fields -->
        <Button id="Add"
            text="Agregar"
            press=".addItem" >
        </Button>
    </form:SimpleForm>
</Page>

控制器

onInit: function() {
    var oModel = new sap.ui.model.xml.XMLModel();
    oModel.loadData("model/sampleData.xml");
    sap.ui.getCore().setModel(oModel);
},

1 个答案:

答案 0 :(得分:0)

您可以使用.setProperty()方法执行此操作。 Here是API的链接。

作为一个选项,您可以遍历表单的字段,从中读取数据并按如下方式更新模型:

addItem: function(){
    var oModel = sap.ui.getCore().getModel();
    oModel.setProperty("/<key1_path>", sap.ui.getCore().byId(this.createId("<relevat_field's_id>").getValue());
    oModel.setProperty("/<key2_path>", sap.ui.getCore().byId(this.createId("<relevat_field's_id>").getValue());
    ...
    oModel.refresh();
}