假设我在Haskell中有一个巨大的多节点树,其中每个节点都包含每个页面的HTML内容。
使用Yesod,用户将使用URL / myPage和Handler
访问网页getMyPageR :: Handler Html
将被调用。
我想要的是当前树节点生成的页面的HTML内容。
在树中,我们从根开始,我们提取当前节点的HTML内容并将其显示为当前页面。在每个页面中,有多个按钮代表用户的选择。当前节点的每个子节点都有一个按钮。然后,根据用户的选择,树将下降一级到用户选择的特定子级,并显示新的HTML内容。然后,用户可以进行另一个选择,树再次下降一级,并出现新的HTML内容。等等。
基本上,用户的每个选择都会将树降低一级,直到我们到达叶节点。
我正在考虑在Haskell中使用Zippers实现这一点,以便我可以轻松地穿过树并保持面包屑的行进位置。
在Yesod中实现此功能的好方法是什么?我希望这个好的解决方案包括使用拉链。
一个解决方案可能是在同一页面上使用POST / Redirect / GET通过Sessions发送树,但如果树太大,它将无法工作。
如果不够清楚,请不要犹豫让我澄清我的问题。
提前致谢。