我的模特
var oModel = new sap.ui.model.odata.ODataModel("../services/myexp.xsodata", false);
sap.ui.getCore().setModel(oModel,'data');
现在我想为此模型添加新记录。简单的代码 -
openUserCreateDialog: function(){
var oUserCreateDialog = new sap.ui.commons.Dialog();
var oSimpleForm1 = new sap.ui.layout.form.SimpleForm({
maxContainerCols: 2,
content:[
new sap.ui.core.Title({text:"Create"}),
new sap.ui.commons.Label({text:"User"}),
new sap.ui.commons.TextField({value:""}),
new sap.ui.commons.Label({text:"Date"}),
new sap.ui.commons.TextField({value:""}),
new sap.ui.commons.Label({text:"Description"}),
new sap.ui.commons.TextField({value:""})
]
});
oUserCreateDialog.addContent(oSimpleForm1);
oUserCreateDialog.addButton(
new sap.ui.commons.Button({
text: "Submit",
press: function() {
var content = oSimpleForm1.getContent();
var oEntry = {};
oEntry.User = content[2].getValue();
oEntry.Date = content[4].getValue();
oEntry.Description = content[6].getValue();
sap.ui.getCore().getModel().create('data>/user', oEntry, null, function(){
oUserCreateDialog.close();
sap.ui.getCore().getModel().refresh();
},function(){
oUserCreateDialog.close();
alert("Create failed");
}
);
}
})
);
oUserCreateDialog.open();
},
当我提交表单时,它会抛出错误 -
Uncaught TypeError: sap.ui.getCore(...).getModel(...).create is not a function
我的代码出了什么问题。请帮忙。谢谢
答案 0 :(得分:1)
您的代码存在的问题是您将模型设置为命名模型,但访问默认模型。
sap.ui.getCore().setModel(oModel,'data');
上面的代码为oModel设置了名称' data'但在阅读时您正在访问默认模型
sap.ui.getCore().getModel().create('data>/user', oEntry, null, function(){
oUserCreateDialog.close();
sap.ui.getCore().getModel().refresh();
},function(){
oUserCreateDialog.close();
alert("Create failed");
}
);
因此,在访问模型时,请调用命名模型
sap.ui.getCore().getModel('data').create('/user', oEntry, null, function(){
oUserCreateDialog.close();
sap.ui.getCore('data').getModel().refresh();
},function(){
oUserCreateDialog.close();
alert("Create failed");
}
);
这将有效。