#odata #sapui5
#odata #sapui5
Вопрос:
Я новичок в мире sapui5, и я застрял в начале, и прошу вашей помощи, я создал приведенную ниже службу OData, которая содержит две сущности введите описание изображения здесь
Затем я создал приложение, которое я запустил с первым представлением и контроллером, затем в нем я написал следующий код
onLogin: function(){
var sURI = "proxy/http/localhost:9999/MIKMOWCFDataService.svc/";
var oModel = new sap.ui.model.odata.ODataModel(sURI, false);
oModel.oHeaders = {
"DataServiceVersion": "2.0",
"MaxDataServiceVersion": "2.0"
};
var aFilter = [];
aFilter.push(new sap.ui.model.Filter("VendorEmail", sap.ui.model.FilterOperator.EQ, this.getView().byId("txtUserName").getValue()));
aFilter.push(new sap.ui.model.Filter("VendorPassword", sap.ui.model.FilterOperator.EQ,this.getView().byId("txtPassword").getValue() ));
oModel.read("/tbl_Vendors", {
filters : aFilter
});
sap.ui.getCore().setModel(oModel,"vendors");
}
Чего я пытаюсь добиться от кода, так это получить идентификатор пользователя после того, как он отправит свой адрес электронной почты и пароль, мне удалось вернуть правильную строку из базы данных, но после этого я не смог прочитать свойство ID из возвращенных данных, это делается только через список использованных и нажмите на списокэлемент для запуска другого события, а затем считывания идентификатора, который не является разумным в приведенном примере, может ли кто-нибудь помочь мне в том, как считывать свойство непосредственно из модели
Заранее спасибо
Ответ №1:
Вам нужно поместить идентификатор в глобальную переменную, а затем привязать переменную к ключу сущности.
onInit: function() {
var oEventBus = sap.ui.getCore().getEventBus();
sap.ui.core.UIComponent.getRouterFor(this).attachRouteMatched(this.onRouteMatched, this);
},
//routing validation
onRouteMatched: function(oEvent) {
var oParameters = oEvent.getParameters();
// when detail navigation occurs, update the binding context
if (oParameters.name !== "CreateDoc") {
return;
}
console.log(oParameters.name);
//put your entity name here
var sEntityPath = "/MasterSet(Id='" yourGlobalVariable "')";
this.bindView(sEntityPath);
},
//binding initial data to sapui5 page
bindView: function(sEntityPath) {
var oView = this.getView();
oView.bindElement(sEntityPath);
// check if the data already on the client
if (!oView.getModel().getData(sEntityPath)) {
// check that the entity specified actually was found
oView.getElementBinding().attachEventOnce("dataReceived", jQuery.proxy(function() {
var oData = oView.getModel().getData(sEntityPath);
console.log(oData);
if (!oData) {
// this.showEmptyView();
} else {
//
}
}, this));
}
},
Попробуйте использовать консоль.регистрируйтесь на каждом шаге, чтобы понять поток.