背景關系
https://ihp.digitallyinduced.com/Guide/helpful-tips.html它提到了以下內容:
寫
#companyId相當于寫fromLabel @"companyId".
實驗
在博客應用程式的例子中,如果我在一個視圖中添加以下內容:
{get #title post}.
帖子的標題如期顯示出來。
現在,如果我在視圖中添加以下內容:
{get (fromLabel @"title") post}
該頁面不能正常渲染,它給我的資訊如下:
Web/view/Posts/Show. hs:11:33。
- 12:40:
12 | {get (fromLabel @"title") post}.
| ^
"0
SrcLoc "" 1 30
運算式中的決議錯誤:fromLabel@"title"
"/span>
提問
。根據上面參考的檔案中提到的內容,我似乎可以這樣寫:
get (fromLabel @"title"/span>) post
而不是:
get #title post
但這顯然是行不通的。 :-)
那么,我在這里錯過了什么?是否有一種方法可以寫:
get #title post
就fromLabel而言?
Update 1
正如Fyodor在下面的評論中所建議的,我嘗試了以下方法:
{show @Int 42}。
結果是這樣的:
Web/view/Posts/Show. hs:11:33。
- 12:23:
12 | {show @Int 42}。
| ^
"0
SrcLoc "" 1 13
運算式中的決議錯誤:show@Int
"/span>
uj5u.com熱心網友回復:
這是一個已知的錯誤 :-)
參見https://github.com/digitallyinduced/ihp/issues/1049和https://github.com/digitallyinduced/ihp/issues/857
試著這樣寫:
[hsx|{title}|] 。
where
title = get (fromLabel @"title") post
在HSX運算式中,{}內的hashkell代碼是使用一個自定義的hashkell分析器(而不是hashkell編譯器使用的那個)進行決議的。這個自定義決議器有點過時了,還不支持@SomeType語法。
#hash 語法也不被分析器直接支持。決議器認為#符號是一個infix運算子(像 或-)。HSX隨后將帶有#的infix運算式轉換為正確的fromLabel呼叫。
通過最近版本的 haskell 編譯器,我們實際上可以完全擺脫第三方決議器,直接使用 haskell 編譯器的決議器。我們計劃在未來這樣做以解決這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/316950.html
標籤:
