我可以在编译时不知道其名称的情况下填补网页锐利模板的漏洞吗?



我是使用WebSharper的新手,我被困在WebSharper 4的当前情况下:

我有以下html模板(一些模板.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模板化的网站?这就是我想要实现的目标,但如果它完成了,就没有必要重新发明轮子。如果您也指出我这些资源(如果可用(,我将不胜感激。

您可以通过将字符串传递给构造函数来传递动态模板:

type SomeTemplate = WebSharper.UI.Templating.Template<"some-template.html">
let doc = SomeTemplate("<div>...</div>").SomeHole("some content").Doc()

但这些孔仍然基于类型提供程序静态类型化。目前没有实现动态漏洞的 API。

不过,这可能是一个很好的有用的补充;你应该在github上发布一个建议。

最新更新