获取与对象标题绑定的元素

时间:2019-01-15 09:22:02

标签: javascript data-binding sapui5

我正在使用带有参数的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"
    });
}

我想将数据附加到我这样声明的第二页的对象头中。

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

第二页没有附件。但是我想将传递的参数附加到对象标题的标题的标题中。我该如何实现?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您有这样的代码:

 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"
    });

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

谢谢。