にウィジェットを直接含めますそれをハンドラやすべての作業にロードできます。イェソドは、私は足場イェソドアプリを持っているとこのようになりますし、別のモジュールに位置するシンプルなウィジェットを作成したテンプレート
twitterUsername :: String
twitterUsername = "someusername"
getHomeR :: Handler Html
getHomeR = do
(formWidget, formEnctype) <- generateFormPost sampleForm
let submission = Nothing :: Maybe FileForm
handlerName = "getHomeR" :: Text
defaultLayout $ do
let (commentFormId, commentTextareaId, commentListId) = commentIds
aDomId <- newIdent
setTitle "Some title"
twitterWidget twitterUsername
$(widgetFile "homepage")
だから私がやりたいものを別のテンプレートに直接それを使用することですが、私はしようとすると実行します。
^{twitterWidget twitterUsername}
は私が
• Ambiguous type variable ‘m1’ arising from a use of ‘toWidget’
prevents the constraint ‘(ToWidget App (m1()))’ from being solved.
Probable fix: use a type annotation to specify what ‘m1’ should be.
These potential instances exist:
instance (site' ~ site, IO ~ m, a ~()) =>
ToWidget site' (WidgetT site m a)
-- Defined in ‘Yesod.Core.Widget’
...plus one instance involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In the second argument of ‘(GHC.Base..)’, namely ‘toWidget’
In the expression: asWidgetT GHC.Base.. toWidget
In a stmt of a 'do' block:
(asWidgetT GHC.Base.. toWidget) (twitterWidget twitterUsername)
を取得するだから私の質問が何であるかであります異なる目的を果たしているウェブサイト上のテンプレートに複数のウィジェットを読み込ませることができますか?
テンプレートのコンテンツを提供できますか? –
このページのテンプレートは、ヘッダーウィジェットとホームページで区切られています。ヘッダーウィジェットはFoundation.hsの各ページにロードされ、ホームページテンプレートにはhtmlだけが含まれているので便利ではないと思います。 – vodich