2
나는 햄릿 파트없이 yesod 응용 프로그램을 작성하려고합니다. 내 질문은 양식에 관한 것입니다 : Applicative를 사용하여 양식을 생성 할 수는 있지만 내 불꽃 코드에서 직접 사용할 수는 없습니다.Yesod에서 불꽃 코드로 위젯을 작성하는 방법은 무엇입니까?
-- actual form example
userForm :: Form User
userForm = renderDivs $ User
<$> areq textField "Login" Nothing
-- usage example
getPageR :: Handler Html
getPageR = do
((_, widget), enctype') <- runFormGet userForm
defaultLayout [whamlet|
<form method=post [email protected]{PageR} enctype=#{enctype'}>
^{widget} -- This widget include.
<button>Submit|]
그러나 내가 촌락없이 방법을 다시 작성할 수 있습니다 : 여기
는 마을 버전 예입니다?getPageR = do
((_, widget), enctype') <- runFormGet userForm
defaultLayout $ do
toWidgetBody $ \render -> do
H.div ! A.id "form" $ do
H.form ! A.method "post" ! A.action (action' render) ! A.enctype (enct' enctype) $ ""
-- widget include?
H.button "Submit!"
where
action' = \render -> toValue $! render (PageR) []
enct' = toValue . renderHtml . toHtml
Obvously, 불길 코드의 유형은 html로하지만, 사용자 정의 폼 유형은 위젯, 그래서 연결이되지 않는다 : 나의 현재 코드는 다음과 같다. 나는 toWidgetBody
기능 후에 위젯 만 추가 할 수 있지만 모든 내용이 끝나면 양식이 작성됩니다. hamlet ^{widget}
구조가없는 블레이즈 연결자 내에 양식을 포함시키는 방법이 있습니까 (HTML로 렌더링 할 수 있습니까?)?
응용 프로그램 대신 모나드 양식을 사용하려는 경우 FieldView를 Html로 확장하여 위젯 정의에 사용할 수 있습니까? – Takao
적절한 코드 예제를 사용하여 새로운 질문을 열어주십시오. - 감사합니다. – ErikR