SAPUI5 在 JSON 模型 2 中使用来自 JSON 模型 1 的值

Posted

技术标签:

【中文标题】SAPUI5 在 JSON 模型 2 中使用来自 JSON 模型 1 的值【英文标题】:SAPUI5 use value from JSON Model 1 in JSON Model 2 【发布时间】:2021-03-18 09:09:28 【问题描述】:

我可以在第二个 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

【讨论】:

以上是关于SAPUI5 在 JSON 模型 2 中使用来自 JSON 模型 1 的值的主要内容,如果未能解决你的问题,请参考以下文章

SAPUI5绑定JSON模型来控制

使用数据绑定从SAPUI5多输入字段中删除令牌

SAPUI5 XML 视图文本不可见

嵌套路由 SAPUI5

Javascript / SAPUI5:将JSONArray绑定到ListItem

SAPUI5表格单元自定义控件绑定