2013-06-06 8 views
0

일부 상태 정보를 제공하는 IO Bool 기능이 있습니다. 나는 "OK"또는 "KO"이 함수에 의해 반환 된 값에 따라 .tpl 파일의 스플 라이스에 쓰고 싶습니다.Snap, SnapletISplice 내부 IO Monade를 여는 방법

그래서 내가 행복 할거야, SnapletISplice 안에 IO 모나드를 들어 올려서 statusSplice :: SnapletISplice App을 ("splicename", statusSplice)와 바인딩하고 내부의 IO 모나드에서 값을 계산할 수 있습니다.

저는 SnapletISplice가 "IO Monad"이고 그러한 리프팅 기능이 있어야한다고 확신합니다. 그러나 나는 그것이 무엇인지 알 수 없다.

Nb : 스냅 0.11을 사용하고 있습니다. 따라서 일부 기능 (예 : liftHandle)이 제거되었습니다. 내가하고 싶은 것이 코드, 짧은에서

:

app = ... 
    addSplices splices 
    ... 

splices = [("spliceName", statusSplice)] 

statusSplice :: SnapletISplice App 
statusSplice = do 
    st <- lift $ computeStatus 
    if st then textSplice "ok" else textSplice "ko" 

답변

2

SnapletISpliceHeistT의 별칭.

HeistT 그것이 그냥 다시 시도

+0

를 가져 오는 경우

MonadIO 그래서 liftIO 작동합니다 구현하고, 그것을 작동합니다. 내가 처음 시도했을 때 나는 어리석은 실수를 저질렀어야했다. 감사. – Ano