簡體   English   中英

Typeprovider,websharper,f#,builiding order

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM