Есть ли способ повторно использовать компоненты при развертывании на платформе Sap Cloud? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь повторно использовать приложение из другого с помощью ComponentContainer, как показано в этом блоге: https://blogs.sap.com/2017/10/23/demystifying-the-art-of-component-reuse-in-sapui5/

Мое приложение разрабатывается с помощью полного стека SAP Web IDE иразвертывается в облачной платформе SAP.Я видел примеры этой работы через развертывание в репозиторий ABAP, но это не то, что мы пытаемся сделать.

Пока что я создал дочернее приложение и родительское приложение, и я пытаюсь вызвать дочернее приложение из родительского класса с помощью ComponentContainer.Я развернул дочернее приложение, но я не уверен, как ссылаться на это приложение от родителя.

Это мое представление ParentApp:

<mvc:View controllerName="Parent.MyParentApp.controller.View1"
xmlns:html="http://www.w3.org/1999/xhtml" 
xmlns:mvc="sap.ui.core.mvc"
xmlns:core="sap.ui.core"
displayBlock="true" xmlns="sap.m">
<App id="idAppControl">
    <pages>
        <Page title="{i18n>title}">
            <content>
                <Text text="Hello"/>
                <core:ComponentContainer width="100%"
                    name="MyChildApp"
                    component="MyChildApp"/>
            </content>
        </Page>
    </pages>
</App>

ParentApp Component.js

jQuery.sap.registerModulePath("MyChildApp", "/mychildapp/");
        jQuery.sap.require("MyChildApp.Component");

ParentApp neo-app.json

{
    "path": "/mychildapp/",
    "target":{
        "type": "application",
        "name": "mychildapp"
    },
    "description": "My Child App"
}

Это мое представление ChildApp:

<mvc:View controllerName="Child.MyChildApp.controller.View1" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"
displayBlock="true" xmlns="sap.m">
<App id="idAppControl">
    <pages>
        <Page title="{i18n>title}">
            <content>
                <Text text="World"/>
            </content>
        </Page>
    </pages>
</App>

В настоящее время я просто получаю сообщение об ошибке: "Uncaught (in обещание) Ошибка: не удалось загрузить 'myChildApp / model /models.js 'из ../../resources/myChildApp/model/models.js: 404 - ".

Я предполагаю, что проблема связана с путями, указанными в Component.js и neo-app.json, но я не уверен, какими должны быть эти пути при работе с облачной платформы.

Я довольно новичок в разработке Ui5, поэтому не уверен, что то, что я пытаюсь сделать, возможно, но любой совет / помощь с этим будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 07 февраля 2019

Это определенно из-за неправильного пути.Чтобы найти правильный путь, вы можете сделать следующее:

1) открыть Chrome DevTools и открыть вкладку Сеть.

Я предполагаю, что Component.js вашего дочернего приложения будетбыть окрашен в красный, что означает, что он не был загруженЕсли вы наведете курсор на файл Component.js вашего Parent приложения, вы сможете увидеть путь, где хранится ваше Parent-приложение.Надеюсь, если вы настроите этот путь на аналогичный путь, но для вашего Child-приложения ваше повторное использование будет работать.

Я предполагаю, что путь к вашему компоненту родительского приложения будет выглядеть как '/ sap / fiori / parentApp/Component.js'.

Если это так, попробуйте следующее в Компоненте вашего родительского приложения:

jQuery.sap.registerModulePath("MyChildApp", "/sap/fiori/mychildapp");
...