我正在使用带有参数的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>
第二页没有附件。但是我想将传递的参数附加到对象标题的标题的标题中。我该如何实现?
答案 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"
});
在这里我不得不做很多假设,因为我看不到我需要看的所有东西。
谢谢。