【问题标题】:Get the element bound with the object header获取与对象头绑定的元素
【发布时间】:2026-01-03 04:40:01
【问题描述】:

我正在使用带有参数的 UI5 路由,我想通过路由将参数传递给另一个视图。对于第二页的视图,我正在编写将传递的参数附加到组件的函数。

onInit: function () {
    var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
    oRouter.getRoute("personProperties").attachPatternMatched(this._onObjectMatched, this);  
},

_onObjectMatched : function (oEvent) {
    this.getView().byId("oHeader").bindElement({
        path: "/contacts/" + oEvent.getParameter("arguments").personPath,
        model: "person"
    });
}

我想将数据附加到第二页的 Object Header,我是这样声明的。

<mvc:View 
    xmlns="sap.m" 
    xmlns:mvc="sap.ui.core.mvc" 
    xmlns:tnt="sap.tnt" 
    displayBlock="true"
>
    <ObjectHeader title="{person>personId}"></ObjectHeader>
</mvc:View>

第二页没有附加模型。但是我想将传递的参数附加到对象标题的标题中。我怎样才能做到这一点?

【问题讨论】:

    标签: javascript data-binding sapui5


    【解决方案1】:

    人是真正的模特吗? 为什么要通过 JavaScript 而不是 XML 创建标头?您可以直接将该模型绑定到视图,您只需要使用 View 的 bindElement 方法即可。

    【讨论】:

    • 我现在改成 XML 视图了,我不明白你说的“真实模型”是什么意思?感谢您的回答。
    • 嗨 Suhas,“真正的模型”,因为代码是部分的,我无法像这样获得整个图片;)
    【解决方案2】:

    你有这样的代码:

     this.getView().byId("oHeader").bindElement({
            path: "/contacts/" + oEvent.getParameter("arguments").personPath,
            model: "person"
        });
    

    但是,您的 xml 没有显示任何 id“oHeader”。我建议您在整个视图上设置“bindElement”,如下所示(或在上面提供有效的 id):

     this.getView().bindElement({
            path: "/contacts/" + oEvent.getParameter("arguments").personPath,
            model: "person"
        });
    

    我不得不在这里做很多假设,因为我看不到我需要看到的所有东西。

    谢谢。

    【讨论】:

      最近更新 更多