Получить элемент, связанный с заголовком объекта - PullRequest
0 голосов
/ 15 января 2019

Я использую маршрутизацию 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 голосов
/ 16 января 2019

У вас есть такой код:

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

Но ваш xml не показывает никакого идентификатора "oHeader". Я рекомендую вам установить 'bindElement' на весь вид, как показано ниже (или предоставить действительный идентификатор выше):

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

Мне пришлось сделать здесь много предположений, потому что я не вижу всего, что мне нужно видеть.

Спасибо.

0 голосов
/ 15 января 2019

Является ли человек настоящей моделью? Почему вы создаете заголовок с помощью JavaScript, а не XML? Вы можете напрямую связать эту модель с представлением, вам просто нужно использовать метод View bindElement, чтобы сделать это.

...