首页 > 解决方案 > SAPUI5 在 JSON 模型 2 中使用来自 JSON 模型 1 的值

问题描述

我可以在第二个 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 中使用它。

标签: sapui5jsonmodel

解决方案


是的,你可以绑定它。对于以下示例,它将如下所示:

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


推荐阅读