【问题标题】:UI5 Data Binding from an Array of Objects (JS View)对象数组的 UI5 数据绑定(JS 视图)
【发布时间】:2018-01-04 10:15:32
【问题描述】:

我正在尝试将数据绑定到我的表。

我的数据如下所示:

以及我的代码的相关部分:

从视图:

var innerTable2 = new sap.m.Table(this.createId("innerTable2"), {
        columns: [
            new sap.m.Column({
                header: new sap.m.Label({
                    text: " Header Text"
                })
            }),
            new sap.m.Column({
                header: new sap.m.Label({
                    text: " Header Text 2"
                })
            })
        ]
    }).addStyleClass("table-result");

来自控制器:

// creating path for the property I need
var path_STOFFTYP = "{" + elementId + "/stoff/STOFFTYP}";
var oInnerTemplate2 = new sap.m.ColumnListItem({
    cells: [
        new sap.m.Text({
            text: "test"
        }),
        new sap.m.Text({
            text: path_STOFFTYP
        })
    ]
});
//here binding template to table 
this.byId("innerTable2").setModel(oModel).bindItems("/results/rs999", oInnerTemplate2);

如果我将path_STOFFTYP 保持原样,我将不会收到任何数据。

如果我只让它“stoff”,它会显示 [object Object]stoff 数组的长度一样多。

我知道,可以肯定的是,属性“stoff”至少有 1 个,最多有 65 个不同的元素(取决于所选项目。它是动态的)

如果我将 var path_STOFFTYP 更改为 "{" + elementId + "/stoff/0/STOFFTYP}";

它显示了“Wirkstoff”的值。这是正确的,但是我不想创建 60 个不同的属性。

我的问题:如何从数组 "stoff" 中获取属性 "STOFFTYP" 的所有值?我想动态绑定。

【问题讨论】:

    标签: javascript data-binding sapui5


    【解决方案1】:

    我不确定我是否完全理解你想要做什么。

    但是你的 Binding 是错误的,stoff 是 results/rs999 数组中的一个数组。所以它是数组中的数组。

    你的模板应该只使用相对绑定,所以

    path_STOFFTYP = "{STOFFTYP}";
    

    然后您应该将您的项目动态绑定到某种路径:

    /here binding template to table 
    this.byId("innerTable2").setModel(oModel).bindItems("/results/rs999/"+elementId+"/stoff", oInnerTemplate2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多