[英]Net core generic repository pattern how to inject DbContext without knowing its type at compile time?
[英]Can I fill a websharper template's hole without knowing its name at compile time
我是使用WebSharper的新手,并且在使用WebSharper 4时处于当前状态:
我有以下html模板(some-template.html):
<div class="container">
<div ws-replace="Content">
</div>
</div>
它定义了一个名为Content
的内容空洞。 通常,可以使用以下代码(F#)来填充它:
type SomeTemplate = WebSharper.UI.Templating.Template<"some-template.html">
let doc = SomeTemplate().Content(someElements)
在我的方案中,我在编译时不知道模板的名称和孔。 假设我有一个函数:
let buildDom(tempalte : string, holeName : string, content : Doc list) : Doc =
let template = WebSharper.UI.Template<tempalte> // (1)
// template.FillHole(holeName, content) (2)
我不知道如何最好地处理(1)-创建模板,以及(2)-找到并填充孔。 我想到了反思,但是我想知道是否有一种更优雅,更高效的方法。
一个更笼统的问题-是否有一种很好的方法来动态组成html模板化的sitelet? 这是我正在尝试实现的目标,但是如果做得不好,可能就不需要重新发明轮子了。 如果您也将此类资源指向我,我将不胜感激。
您可以通过将字符串传递给构造函数来传递动态模板:
type SomeTemplate = WebSharper.UI.Templating.Template<"some-template.html">
let doc = SomeTemplate("<div>...</div>").SomeHole("some content").Doc()
但是孔仍然基于类型提供程序进行静态键入。 当前没有实现动态漏洞的API。
不过,这可能是一个很好的有用的补充。 您应该在github上发布建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.