【发布时间】:2020-02-06 15:55:36
【问题描述】:
我一直在使用 Blazor (https://blazorboilerplate.com),但今晚我遇到了一个问题,向我的 blazor 页面添加了一些自定义 D3 代码。 D3 / Javascript 代码创建了几个 DOM 输入元素,我希望检索这些创建的元素的值,以便我可以使用这些值将 DTO 保存到我的数据库中。我该怎么做?最有效的方法是什么?我应该只创建一个 JSInterop 方法来返回输入值吗?
domInput.attr("@ref", function (d3) {return d3.key});
我尝试创建“@ref”属性,以便可以使用 ElementReference,但是当我尝试附加以“@”开头的属性时出现 D3 错误
【问题讨论】:
-
Blazor 使用“shadow dom”方法来维护 UI,如果您自己从 JavaScript 添加元素,它们不是 Blazor 域的一部分,也不会与您的 Blazor 代码交互。你这样做有充分的理由吗?
-
因为它是来自现有测试和复杂代码的 D3,它执行一些非常酷的 UI 操作。 D3 创建 DOM 元素并具有经过测试的算法,我不想在 Blazor 中重写或重构。你可以在这里看到一个例子:keithfimreite.com/post/roi-investment-calculator.aspx
标签: javascript d3.js blazor blazor-client-side