Übergeben Sie einen anderen controller beim instanziieren eines fragments in SAPUI5

In das SAPUI5 /OpenUI5 xmlfragment Dokumentation der Dritte parameter ist ein controller für die Handhabung von Aktionen aus dem fragment.

Dies ist entscheidend für ein dialog-fragment, wo gibt es Knöpfe zu drücken, etc.

Meisten der Zeit, die ich gesehen habe, diese instanziiert wie this oder sap.ui.getCore().byId('<element>').getController())

Sehen Sie ein Beispiel, bei Fragment nicht bekommen richtigen Controller

Aufgrund der Komplexität in einem bestimmten dialog hätte ich gerne noch einen separaten controller für Sie.

Ich sah sich um und hatte ein paar versuche, aber bisher nicht erfolgreich.

Habe ich ein funktionsfähiges Beispiel auf github mit this.

Aber ich möchte instanziieren Dialog.js als controller für die Dialog.fragment.xml aus initial.view.controller

Irgendwelche Abnehmer?

Pull-Anfragen gerne empfangen.

Den Kern des Beispiels ist wie folgt (dies ist die initial.controller.js) :

sap.ui.controller("sc.test.view.initial", {

oDialog: null,

openTestDialog: function(){
    console.log("in open dialog");
     //instantiate the other controller
     var oDialogController = new sc.test.view.Dialog();
    //this next commented line is the 'normal' way to do it
    //oDialog = new sap.ui.xmlfragment( "sc.test.view.Dialog", this);  //oDialogController);
    //this is what I would like to achieve
    oDialog = new sap.ui.xmlfragment( "sc.test.view.Dialog", oDialogController);
    oDialog.open();
},       


onCartDialogCancel:function(oEvent){
//this function would then be in the other controller but how to get a handle on the dialog?
    oDialog.close();

}

});

Dank.

  • Poste bitte die (vereinfachte) Beispiel haben Sie hier auch. (Stackoverflow-Richtlinie)
  • Erledigt, Dank @Gábor-bakos
InformationsquelleAutor njames | 2014-11-23
Schreibe einen Kommentar