Мне нужно отобразить текстовые элементы, элементы строки и т. Д. c в svg в blazor. Итак, я создал jSinterop для выполнения этих операций, чтобы я мог вызывать методы js везде, где это необходимо. Мой фрагмент кода:
.razor
@inject IJSRuntime JsInterop
<svg id="parentElement">
@for (var i = 0; i < count; i++)
{
@RenderTextElements()
}
</svg>
@code {
int count = 10;
public object RenderTextElements()
{
return (JsInterop.InvokeAsync<object>("elementText", new object[] { }));
}}
Мои js файлы
window.elementText = function () {
var svgElement = this.document.getElementById('parentElement');
var text = document.createElementNS('http://www.w3.org/2000/svg', 'text');
text.setAttribute('fill', 'black');
text.textContent = 'hello world';
svgElement.insertAdjacentElement('afterbegin', text)
}
Это * Вызывается метод 1017 *, но текстовый элемент не добавлен в DOM. Когда я отлаживаю этот метод, я вижу элемент, добавленный к DOM. Позже его снимают. Не могу найти, где его снимают.