on 2018 Jan 14 5:14 PM
Hi there
I've a problem with OData where I can't access the error message when it goes wrong.
My controller has the following code - it all works fine.
onInit: function(){
this.getRouter().getRoute("display").attachPatternMatched(this.onObjectMatched, this);
},
onObjectMatched: function(oEvent){
var sObjectPath = this.oModel.createKey("DataSet", {
Var1: oEvent.getParameter("arguments").Var1,
Var2: oEvent.getParameter("arguments").Var2
});
this.getView().bindElement({
path: "/" + sObjectPath,
events: {
change: this.onBindingChange.bind(this)
}
});
},
onBindingChange: function(){
var oElementBinding = this.getView().getElementBinding();
if (!oElementBinding.getBoundContext()) {
this.getRouter().getTargets().display("notFound");
}
}
If the bindElement fails (because I manipulate the URL to access something I shouldn't, for example) I get an error in the console.
This error of course has an error message. My question is; how could I access this error message in the onBindingChange method? Is it possible? Or, even, anywhere (I could store it in the UIHelper if need be).
I've been looking all over Google and here but have not gotten nowhere.
In the bindElement method, I've tried to add the dataReceived event but that returns nothing. I've tried the attachRequestFailed on the oModel but that didn't work either.
Any help appreciated,
Thomas
Request clarification before answering.
You can check (if using OData v4):
With OData v4 many events are just not supported.
Something like the following snippet could help:
this.getView().bindElement({
path: "/" + sObjectPath,
events: {
change: this.onBindingChange.bind(this),
dataReceived: function (oEvent) {
if (oEvent.getParameter("error")) {
// error handling
} else {
// something useful
}
}
});
Regards
Karsten
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
64 | |
8 | |
7 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.