Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Change model in XML-template.

Hi!

Please help understand the problem!

I learned XML templates. Following the example of 'XML Templating in SAPUI5', I create a view and places it in the main view.

Main.controller.js

//...

var o_goals_data_model = new JSONModel(this.goals_data);

var o_settings_model = new JSONModel(this.settings);

var o_form_view_template = sap.ui.view({

  preprocessors: {

  xml: {

  models: {

  goals_data: o_goals_data_model,

  settings: o_settings_model

  }

  }

  },

  type: sap.ui.core.mvc.ViewType.XML,

  viewName: 'sap.app.GoalSet.view.Form'

});

this.getView().byId('goalset_main_shell').addContent(o_form_view_template);

//...

However, the controller can not I turn to the model in view. If I need to change the model, how it can be done?

Form.controller.js

ap.ui.define( ["sap/ui/core/mvc/Controller"],

  function (Controller, History, JSONModel) {

  "use strict";

  return Controller.extend("sap.app.GoalSet.controller.Form", {

  onInit : function () {},

  onTogleEditTables: function(){

  var o_view = this.getView();                                    //OK

  var o_model = o_view.getModel("settings");           //undefined

  var status = o_model.getProperty("/edit_tables");   //Error!

  //o_model.setProperty("/edit_tables", !status);        //???

  sap.m.MessageToast.show(status);

  },

  });

});

Sorry for my English ... I hope my problem is clear.

Tags:
Former Member
replied

Hi Sergey,

Try like this -

onTogleEditTables: function(){

var o_view = this.getView();                       //Get View

var o_Models = o_view.mPreprocessors.xml.models;      //Get models defined in preprocessor

var o_model = o_Models.settings;                //Get Settings Model    

var status = o_model.getProperty("/edit_tables");  

sap.m.MessageToast.show(status);

},

Regards,

Sai Vellanki.

1 View this answer in context
Not what you were looking for? View more on this topic or Ask a question