Отображение представления простой формы на sapui5

я работаю в проекте над шаблоном master/detail, я создал кнопку в своем Master.view.xml, я все еще новичок в разработке SAPUI5 и SAP Web IDE, когда я нажимаю кнопку, на самом деле ничего не происходит, даже если подумать когда я отлаживаю хром, я не нахожу ошибок, вот мой Master.view.xml

<sap.ui.layout:content>
                <Button text="Ajouter" enabled="{appView&gt;/addEnabled}" width="100px" id="addButton" icon="sap-icon://add" press="onAdd" activeIcon="sap-icon://accept"/>
            </sap.ui.layout:content>

это мой метод главного контроллера:

onAdd : function(){     
        this.getRouter().getTargets().display("create");    
                  },

это моя маршрутизация Component.js

    routing: {

        config: {
            routerClass: com.emi.MyRouter,
            viewType: "XML",
            viewPath: "com.emi.view",
            targetAggregation: "detailPages",
        //  controlId: "idAppControl",
        //  targetControl: "idAppControl",
            controlAggregation: "detailPages",
            clearTarget: false
        },
        routes: [




            {
                pattern: "",
                name: "main",
                view: "Master",
                targetAggregation: "masterPages",
                targetControl: "idAppControl",
                subroutes: [
                    {
                        pattern: "{entity}/:tab:",
                        name: "detail",
                        view: "Detail"

                    }
                    , {
                        pattern: "{entity}/:tab:/{item}",
                        name: "userDetails",
                        view: "UserDetails"
                        },
                            {
                        pattern: "create",
                        name: "createEntity",
                        view: "CreateEntity",
                        target: "create"
                        }


                ]
            },


            {
                name: "catchallMaster",
                view: "Master",
                targetAggregation: "masterPages",
                targetControl: "idAppControl",
                subroutes: [
                    {
                        pattern: ":all*:",
                        name: "catchallDetail",
                        view: "NotFound",
                        transition: "show"
                    }
                ]

            }
        ],
        targets:    {
            master: {
                viewName: "Master",
                viewLevel: 1,
                viewId: "master",
                controlAggregation: "masterPages"
            //  controlId: "idAppControl"
            },
            object: {
                viewName: "Detail",
                viewId: "detail",
                viewLevel: 2
            },
            create: {
               // viewPath: "sap.ui.com.emi.view.CreateEntity",
                viewName: "CreateEntity",
                targetAggregation: "pages",
                viewLevel: 1,
                controlAggregation: "detailPages",
                transition: "show",
                controlId:"idAppControl"

            }   
            }


    }

    },

и, наконец, это мой метод oninit в CreateEntity.Controller.js

onInit: function() {

  var oRouter, oTarget;
        oRouter = this.getRouter();
        oTarget = oRouter.getTargets().getTarget("create");


},

но когда я нажимаю кнопку, ничего не происходит, и когда я отлаживаю код, я не обнаруживаю ошибок, что означает, что мое представление есть, но не отображается. я сомневаюсь, что проблема в моей функции oninit, не могли бы вы мне помочь? Благодарю вас


person METTAIBI    schedule 11.02.2016    source источник
comment
Вы прошли обучение по маршрутизации или просто скопировали код из Интернета?   -  person Marc    schedule 12.02.2016
comment
Я следовал руководству по маршрутизации и скопировал код функции oninit.   -  person METTAIBI    schedule 12.02.2016
comment
Если поставить точку останова в методе onAdd. это останавливается?   -  person Tiago A.    schedule 14.02.2016


Ответы (1)


Пожалуйста, сделайте следующее:

Убедитесь, что событие onAdd запускается предупреждением alert("reached the onAdd event");, например, в начале события onAdd.

Если запускается событие onAdd, то навигация должна выполняться с помощью .getRouter().navTo("create"); команда. Для правильного использования oRouter.getTargets().getTarget("create"); см. шаг 5 пошагового руководства по привязке

Наконец, вашу конфигурацию маршрутизации лучше всего вставить в файл manifest.json. При этом раздел маршрутов должен иметь только следующие свойства: pattern, name и target. в твоем случае:

pattern: "create",
name: "createEntity",
target: "create"

Вам также нужно будет настроить другие записи — снова обратитесь к пошаговому руководству по навигации, указанному выше.

Наконец, ваш раздел целей может читаться очень просто, как показано ниже:

"createEntity": {
    "viewPath": "com.emi.view.CreateEntity",
    "viewName": "CreateEntity",
      "viewLevel" : 2

Надеюсь это поможет. Настоятельно рекомендуем выполнить пошаговое руководство, предоставленное SAP, ссылка на которое приведена выше!!!

person Bernard    schedule 15.02.2016
comment
ваш ответ полезен, я внес изменения, которые вы мне сказали, но когда я сейчас нажимаю кнопку, представление отображается на секунду, а затем исчезает - person METTAIBI; 15.02.2016
comment
при отладке я обнаруживаю следующую ошибку: не удалось найти элемент управления с идентификатором idAppControl - EventProvider sap.ui.core.routing.Target - person METTAIBI; 15.02.2016
comment
Попробуйте избавиться от всех ссылок на это в вашем component.js - я вижу, что это происходит часто, и я не уверен в значении, учитывая ограниченное количество отображаемого кода - не уверен, что вам это даже нужно. - person Bernard; 16.02.2016