[英]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.