#javascript #svg #sapui5
Вопрос:
Я разработал два пользовательских элемента управления в sapui5, которые используют элементы svg. Первый элемент управления-это родительский контейнер, который принимает совокупность нескольких элементов управления второго типа. Вы могли бы представить себе svg-элемент управления, который отображает несколько, например, кругов в качестве дочерних элементов агрегации.
При инициализации и первом рендеринге это работает хорошо, и отображаются круги.
Когда я изменяю свойство одного из дочерних агрегатов, средство визуализации вызывается снова (с обновленным свойством), и круг svg вводится в DOM. Проблема в том, что html не отображает этот недавно отображенный элемент управления.
Есть два способа показать это:
- перейдите к элементу в DOM в инструментах разработчика, нажмите «Редактировать как html» на родительском элементе управления, измените один неважный html-атрибут и завершите редактирование. Затем html повторно отправляет весь элемент управления svg, и красиво отображается «обновленный» круг.
- Скажите sapui5 повторно передать родительский элемент управления через некоторое время (например, через консоль), используя
.rerender()
метод объекта управления sapui5.
Я попытался воспроизвести его в песочнице кода, чтобы поделиться им, но даже при копировании одного и того же кода для пользовательских элементов управления я не смог этого сделать. Я все равно отправлю вам свой проект в песочнице, чтобы у вас было представление о том, что я пытался объяснить выше.
Я подозреваю, что это как-то связано с определениями пространства имен элементов svg, но я не могу найти решение для этого. Есть какие-нибудь идеи?