如何将xexpr表达式分解为Racket中的函数?

问题描述 投票:2回答:1

在我的Racket web-server / insta应用程序中,我有一些重复的<div> HTML,我想将其分解为一个单独的函数,然后用params调用它以在更大的HTML xexpr中生成div HTML。当我这样做时,我在网页上得到的只是两个参数字符串。我怎样才能将<div>代码考虑在内?

我试过从引用的表达式中调用函数。 我也尝试在div函数中引用的<div>代码前添加一个response / xexpr,但是没有去。

;;我想将<div>从这段代码中分解为一个单独的函数。

(define (start request)
  (response/xexpr
   '(html (head (title "Testing")
          (body (form
                  (div ((class "form-group"))
                       (label ((for "public-id")) "Public Id")
                       (input ((type "text")
                               (name  "public-id")
                               (id    "public-id")
                               (placeholder "Enter public id"))))

;;我尝试使用此函数执行此操作,无论是否有“response / xexpr”代码。

(define (input-field-html fld-name-id fld-caption)

 (response/xexpr

  '(div ((class "form-group"))
        (label ((for fld-name-id)) "Public Id")
        (input ((type "text")
                (name  fld-name-id)
                (placeholder fld-caption))))))
racket
1个回答
3
投票
#lang web-server/insta


(define (start request)
  (response/xexpr
   `(html (head (title "Testing")
                (body (form
                       ,(input-field-html "public-id" "Enter public id")))))))


(define (input-field-html fld-name-id fld-caption)
  `(div ((class "form-group"))
        (label ((for ,fld-name-id)) "Public Id")
        (input ((type "text")
                (name  ,fld-name-id)
                (placeholder ,fld-caption)))))

看到:

© www.soinside.com 2019 - 2024. All rights reserved.