Скрытие элемента пользовательского интерфейса из fragment.xml в стандартном приложении

Я хочу скрыть несколько элементов пользовательского интерфейса из раздела «Мои путешествия и расходы» (стандартное приложение). Я пробовал разные подходы, но не могу добиться того, чего хочу. Вот мое требование:

В приложении «Мои путешествия и расходы» (TRV_TE_CRE) я хочу скрыть следующие элементы пользовательского интерфейса:

GenericClaim.fragment.xml - Button id="costAssignmentButton"

Я добавил проект расширения для TRV_TE_CRE и попробовал, как показано ниже:

  1. В component.js я добавил следующий оператор, чтобы скрыть настройку:

    {
        "sap.ui.viewModifications": {
        "mytravelandexpense.view.GenericClaim": {
            "costAssignmentButton": {
                "visible": false
            },
        },
    },
    

    Результат: не работает

  2. Расширен GenericClaim.controller.js: я добавил приведенный ниже код в метод ловушки.

    this.byFragmentId("costAssignmentButton").setVisible(false);
    

    Результат: вся страница заявки не загружается

  3. Используя ключ доступа, я прокомментировал код пользовательского интерфейса в GenericClaim.fragment.xml

    Результат: не скрыться


person Mahendran N    schedule 27.04.2016    source источник


Ответы (1)


Вместо идентификатора фрагмента вы можете получить доступ к идентификатору элемента из представления. Добавьте этот метод в свой контроллер представления.

onAfterRendering : function(){
    var buttonToHide = this.getView().byId("costAssignmentButton");
    buttonToHide.setVisible(false);
},
person Ryan Boyd    schedule 30.04.2016
comment
Вы имеете в виду, что я должен попробовать внутри onAfterRendering() из расширенного проекта стандартного приложения. Потому что внутри onAfterRendering нет метода ловушки для расширения, и еще одна вещь, которую я пробовал, как показано ниже в методе ловушки, this.getView().byId(costAssignmentButton).setVisible(false). результат: вся страница не загружается - person Mahendran N; 02.05.2016
comment
Какой метод крючка вы пробовали? onAfterRendering — это метод ловушки, который вызывается после создания представления. Добавьте этот метод в файл контроллера вашего представления, если его там еще нет. - person Ryan Boyd; 02.05.2016