Skip to Content
author's profile photo Former Member
Former Member

Change model in XML-template.


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.


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: ''

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


ap.ui.define( ["sap/ui/core/mvc/Controller"], 
  function (Controller, History, JSONModel) {
  "use strict";

  return Controller.extend("", {

  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);        //???;

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

Add comment
10|10000 characters needed characters exceeded

3 Answers

  • Best Answer
    Posted on Oct 25, 2015 at 01:59 AM

    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");; 


    Sai Vellanki.

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Sergey,

      Are you sure about the model property value. Were you able to get the boolean value, when you debug and see o_model_sett.getProperty("/edit_tables") ?

      One of a similar kind sample, you can find it here: Plunker

      But it is not based on MVC, it is just a plain HTML page having the model bound to editable property of the text field controls which are used in table. Click on Non-Editable entries in the table are non-editable. Click on Editable then the entries are editable.


      Sai Vellanki.

  • Posted on Oct 24, 2015 at 06:10 PM

    Dear Sergey,

    Where you declare this model var o_model = o_view.getModel("settings"); .

    Setting model?


    Var Json = new json(data):


    Did you wrote this statement in your code?


    Karthik A

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hello, dear Karthik.

      "this.settings" - a structure.

      When I wrote:

      "var o_settings_model = new JSONModel (this.settings);"

      It was created json-model with the name 'o_settings_model'.

      If I use the "this.getView (). SetModel (o_settings_model, 'settings');", then I can not use "<template: if / repeat / width ...>" in my xml-template. But herein lies the chief meaning.

      Maybe I'm wrong somewhere ...

  • Posted on Oct 25, 2015 at 01:22 AM


    Not sure what you're doing wrong, but here you have a good example:

    Kind regards,


    Add comment
    10|10000 characters needed characters exceeded