1
對於我的網站,我想附加其他信息給Yesod的路線。例如。我想要特殊的導航路徑(前一頁,下一頁,父頁等)或自動創建一個概述頁面,用於(分層)麪包屑等。將附加信息附加到Yesod路線
基本上,我希望能夠將我選擇的記錄附加到路線上。在這個例子中該記錄可能看起來像:
data AdditionalRouteInfo = ARI { nextPage :: Maybe (Route App)
, prevPage :: Maybe (Route App)
, parentPage :: Maybe (Route App)
, seeAlso :: [Route App]
, description :: String
}
耶索德的路由屬性只能是字符串,所以這是不夠的。我的第一個衝動就是使用Data.Map (Route App) AdditionalRouteInfo
,但後來我發現,Route App
不是Ord
:-(
那麼,什麼是推薦的方式來實現這一目標?我能想到的唯一的辦法就是寫一個函數myRouteInfo :: Route App -> AdditionalRouteInfo
和模式我覺得這種困境很難,但是這種感覺很笨拙,有沒有其他辦法呢?
謝謝,我實現它的建議雖然我寧願''路線應用程序''是一個' 'Ord'' :-) – Arno 2015-04-05 07:11:33
您可以隨時使用StandaloneDeriving自行獲取該實例。 – 2015-04-05 11:01:52