【问题标题】:SAPUI5 dropdown list data bindingSAPUI5 下拉列表数据绑定
【发布时间】:2016-03-14 13:19:14
【问题描述】:

我正在尝试使用从成功因素中提取的员工姓名填充下拉列表,但我无法正确显示响应。我可以显示 managerId 和 userId 没问题,只是不显示名字和姓氏。

回复如下:

{
    "d": {
        "results": [{
                    "__metadata": {
                        "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/EmpJob(seqNumber=1L,startDate=datetime'2010-02-01T00:00:00',userId='spappar1')",
                        "type": "SFOData.EmpJob"
                    },
                    "userId": "spappar1",
                    "managerId": "rmaxx1",
                    "employmentNav": {
                        "__metadata": {
                            "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/EmpEmployment(personIdExternal='spappar1',userId='spappar1')",
                            "type": "SFOData.EmpEmployment"
                        },
                        "personNav": {
                            "__metadata": {
                                "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/PerPerson('spappar1')",
                                "type": "SFOData.PerPerson"
                            },
                            "personalInfoNav": {
                                "results": [{
                                    "__metadata": {
                                        "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/PerPersonal(personIdExternal='spappar1',startDate=datetime'1990-01-01T00:00:00')",
                                        "type": "SFOData.PerPersonal"
                                    },
                                    "lastName": "Pappar",
                                    "firstName": "Steve"
                                }]
                            }

这是我的下拉数据绑定:

var employeeTemplate = new sap.ui.core.ListItem({
    text: "{employeeDropDownModel/employmentNav/personNav/personalInfoNav/results>firstName} {employeeDropDownModel/employmentNav/personNav/personalInfoNav/results>lastName}"
});
sap.ui.getCore().getElementById('employeeId').bindItems("employeeDropDownModel>/d/results", employeeTemplate);

任何帮助都会很棒,我尝试了许多不同的组合以使绑定起作用,但无济于事。

【问题讨论】:

  • 您是否使用命名模型employeeDropDownModel?在这种情况下,你的绑定应该是employeeDropDownModel>/etc...(即,如果你使用命名模型,你的绑定应该以namedmodel>为前缀
  • 我想知道您为什么尝试访问 array 的 lastName 和 firstName。因为数组显然没有那个属性。可能有效的方法如下:.....personalInfoNav/results/0/firstName. And as Qualiture said, the >` 属于其他地方。
  • 为什么不使用带有扩展功能的 OData 模型?

标签: sapui5


【解决方案1】:


能否提供整个 UI 流程的 jsbin。从我的经验中立即让我印象深刻的一件事是,您正在尝试一个复杂的绑定,并且您的 index.html 应该具有以下内容

**data-sap-ui-xx-bindingSyntax="complex"**

如果不能解决,能否提供一个 jsbin 示例?

感谢和问候,
维拉

【讨论】:

  • 正如他所说,其他属性工作正常。所以问题似乎不在于 bindingSyntax 设置。
【解决方案2】:

感谢cmets和建议家伙,我尝试了很多不同的方法:

employeeDropDownModel>/employmentNav/personNav/personalInfoNav/results/firstName
employeeDropDownModel>/employmentNav/personNav/personalInfoNav/results/0/firstName

这些都不起作用,我的 index.html 中有 data-sap-ui-xx-bindingSyntax="complex"。

所以我最终做的是以通常的方式绑定模型,然后将模型中的名字和姓氏向上移动到与 userId 和 managerId 相同的级别:

    $.each(
            this.employeeModel,function(index, value) { 
if (value.employmentNav.personNav.personalInfoNav.results.length > 0) {
    var firstName = value.employmentNav.personNav.personalInfoNav.results[0].firstName;
                                                var lastName = value.employmentNav.personNav.personalInfoNav.results[0].lastName;
                                                value['firstName'] = firstName;
                                                value['lastName'] = lastName;
                                            } else {
                                                value['firstName'] = '';
                                                value['lastName'] = '';
                                            }
                                        });

这很好地解决了我的问题。我不确定这是否是一个很好的解决方案,但它对我有用。

再次感谢

【讨论】:

    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多