首页 > 解决方案 > 在 HSX 中使用命名字段记录构造

问题描述

我在 HSX 表达式中有以下内容:

<a href={StudentsAction 
            (get #nameSort model) 
            (get #_currentFilter model) 
            Nothing 
            Nothing}>
    Last Name
</a>

这样一来,尚不清楚哪些参数StudentsAction正在获取哪些值。所以我更喜欢这样的东西:

<a href={StudentsAction { 
            sortOrder = (get #nameSort model),
            currentFilter = (get #_currentFilter model),
            searchString = Nothing,
            pageIndex = Nothing } }>
    Last Name
</a>

但是,这会导致解析错误。

我可以用这样的东西在 HSX 之外构建记录:

instance View IndexView where
    html IndexView { .. } = 

        let sortLastName = StudentsAction { 
                            sortOrder = (get #nameSort model),
                            currentFilter = (get #_currentFilter model),
                            searchString = Nothing,
                            pageIndex = Nothing }

        in 
        
        [hsx|
        <nav>
           ...
           <a href={sortLastName}>Last Name</a>

这很好用,但我更喜欢内联。

有没有办法让表达式内联工作?我猜内大括号弄乱了 HSX 解析器?也许他们需要逃脱?

标签: haskellihp

解决方案


推荐阅读