Pattern Matched Event
SAP bietet mit Fiori ein geniales Erweiterungskonzept. Dieses setzt jedoch voraus, dass der Entwickler bestimmte Vorgaben einhält. So ist es beispielsweise empfehlenswert keine Logik in die onInit Lifecycle-Methode zu legen. Stattdessen sollte man sich auf den PatternMatched-Event registrieren und im zugehörigen Event-Handler die Initialisierung durchführen. Folgendes Code Snippet zeigt die Umsetzung:
onInit: function () {
//Register the event handler for the Pattern Matched Event
this.getRouter().getRoute("Main").attachPatternMatched(this.onPatternMatched, this);
},
onPatternMatched: function (oEventArgs) {
//Here goes the Source Code doing all the initialization work
},
Es können mehrere Routen auf die gleiche View verweisen und so könnte man auch für jede Route einen eigenen PatternMatched-Event-Handler registrieren.
Ein Beispiel dafür wäre, dass auf Detail-View einmal im Bearbeitungsmodus und einmal im Display-Only-Modus navigiert wird:
onInit: function () {
this.getRouter().getRoute("DetailDisplay").attachPatternMatched(this.onPatternMatchedDisplay, this);
this.getRouter().getRoute("DetailChange").attachPatternMatched(this.onPatternMatchedChange, this);
},
onPatternMatchedDisplay: function (oEventArgs) {
this.bEdit = false;
this.onPatternMatchedGeneral(oEventArgs);
},
onPatternMatchedChange: function (oEventArgs) {
this.bEdit = true;
this.onPatternMatchedGeneral(oEventArgs);
},
onPatternMatchedGeneral: function(oEvent){
if(this.bEdit){
...
}else{
...
}
}
Recent Comments