SAPUI5 использует значение из модели JSON 1 в модели JSON 2

#sapui5 #jsonmodel

#sapui5 #jsonmodel

Вопрос:

Могу ли я использовать / привязать значение из первой модели JSON во второй модели JSON? В приведенном ниже примере текст первого элемента во второй модели (MyNamedModel) должен быть «Apple».

Полный пример можно найти здесь: https://plnkr.co/edit/WtStoqxsjUAfC9Ia

 var oFruits = {
    first: "Apple",
    second: "Banana"
  }
  var oFruitModel = new JSONModel(oFruits);
  this.getView().setModel(oFruitModel, "FruitModel");

    var oData = {
      "items": [
        {   Key: "A",
            Text: "{path: '/FruitModel>/first'}",
            Icon: "sap-icon://nutrition-activity"
        },
        {   Key: "B",
            Text: "Paper Plane",
            Icon: "sap-icon://paper-plane"
        },
        {   Key: "C",
            Text: "Vacation",
            Icon: "sap-icon://general-leave-request"
        }
      ]
    };

    var oMyModel = new JSONModel(oData);
    this.getView().setModel(oMyModel, "MyNamedModel");
 

Пример использования:
На самом деле у меня есть элемент управления geoMap, где конфигурация mapConfiguration находится в JSONModel, и я хотел бы получить одно конкретное значение параметра (URL) из серверной части и использовать его в конфигурации mapConfiguration.

Ответ №1:

Да, вы можете его привязать. Для следующего примера это будет выглядеть так:

 var oData = {
          "items": [
            {   Key: "A",
          //  Text: "Apple",
            Text: this.getView().getModel("FruitModel").getData().first,
            Icon: "sap-icon://nutrition-activity"
            }
          ]
        };
 

По сути, с помощью инструкции this.getView().getModel("FruitModel").getData() вы получаете доступ ко всей структуре из «FruitModel». Кроме того, вы можете присвоить ему значения, какие захотите.

Вот также ваш рабочий пример https://plnkr.co/edit/7EO3qaXPpHX5QUZM