Вызовите элементы управления представлениями из другого представления, чтобы получить данные в приложении - PullRequest
0 голосов
/ 21 сентября 2019

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

sap.ui.getCore().byId("application-Test-url-component---master--list")

, если я делаю это так, я не могу получить список

sap.ui.getCore().byId("list").

Это правильноспособ вызова, если какая-либо версия изменится

sap.ui.getCore().byId("application-Test-url-component---master--list")

Пожалуйста, предоставьте предложения или любые ссылки.

1 Ответ

0 голосов
/ 25 сентября 2019

Прежде всего, не используйте метод byId(...) на Core, это плохая практика и плохая привычка.

Для вашего интереса, причина вашей первой строки кодадействительно находит соответствующий элемент управления пользовательского интерфейса, но вторая строка не находит, потому что Core используется всеми приложениями в Fiori Launchpad.Это означает, что все идентификаторы элементов управления имеют префикс пространства имен приложения, и поскольку вторая строка кода не содержит пространства имен приложения, следовательно, он не находит элемент управления.

Что касается правильного получения данных списка изэтот элемент управления из другого места, просто получите связанные данные из того же пути модели, с которым вы связываете этот элемент управления.Например, если основной список привязан к {/Products}, то вы получите те же данные к this.getView().getModel().getProperty("/Products").Это предполагает, что ваша модель данных совместно используется приложением.Я бы порекомендовал вам прочитать документацию по UI5 и лучше понять архитектуру MVC, потому что элементы управления UI должны просто отображать данные, которые хранятся в базовой модели (ях), и именно там они должны быть.

Дайте мне знать, если что-то неясно или у вас есть вопросы.Пожалуйста, отметьте как правильное, если я помог.

...