[英]Typeproviders, websharper, f#, builiding order
所以我使用typeproviders將一些數據添加到我的應用程序中( github鏈接 )所以這就是問題所在。
1)我想要的是我的Site.fs
使用數據並根據我給它的規則構建div。 一切都很好看,除了....
我把結束計算放回到WebSite項目中,可能是因為Web是WebSite中的啟動項目計算從未完成過,也從未推送過數據庫。 它只顯示已存在於數據庫中的數據。
另外,有時只有${title}
和body而不是fsharp中提供的文本(即使使用默認的sitelet示例站點)。 這是正常的嗎? 重啟visual studio有幫助。
PS:對不起,如果我的代碼看起來不那么引人注目,我希望它首先工作,之后我會重構它。
正如您猜測的那樣,在應用程序啟動時會計算一次頂級值(例如您的Site.items
)。 如果您希望在每次加載頁面時計算它,則需要在接收Context<Action>
的函數內計算它。 [1]
例如,您可以執行以下操作:
let getItems() =
seq {
for i in borkData.parseData.db.ONEPOST do
yield [i.Title; i.Link; i.Poslodavac; i.MjestoRada; i.RokZaPrijavu]
}
let JobsPage =
Skin.WithTemplate "Jobs" <| fun ctx -> // this is the function that gets called for every page
let items = getItems()
[
for i in items ->
Div [Class "job"] -<
[
A [Class "title"] -< [HRef i.[1]] -< [ Text i.[0]]
P [Class "posted top"] -< [ Text i.[3] ]
P [Class "employer"] -< [ Text i.[2] ]
]
]
這里,因為getItems
是一個函數,所以每次你使用let items = getItems()
求它時,它會計算它的返回值。
[1]您也可以在傳遞給Sitelet.Infer
的函數內部執行此操作。如果您使用它,請執行此操作。 如果要返回的Content
取決於items
,例如,如果您想根據items
使用不同的模板,這將非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.