为什么不能compojure-app和hiccup导入功能hiccup.form / form-to?

时间:2019-01-25 02:39:03

标签: intellij-idea clojure compojure hiccup

我使用“ lein new compojure-app”创建了一个Web项目,打ic已经被导入到project.clj中:

:dependencies [[org.clojure/clojure "1.8.0"]
             [compojure "1.5.2"]
             [hiccup "1.0.5"]

我可以看到jar文件

我在home.clj中将intellij用作ide:

(ns ansible.routes.home
(:require [compojure.core :refer :all]
        [ansible.views.layout :as layout]
        [hiccup.form :refer :all]
        ))

但是在写时:

(form-to [ :post "/"]

intellij告诉我form-to can't be resolved,如果我使用此命令:

[hiccup.form :as hf]

然后写

(hf/

intellij告诉我,我可以使用function:group,input-filed,make-id,make-name,with-group,但没有form-to,但是form-to是软件包hiccup.form中的一个函数

我该如何解决?

1 个答案:

答案 0 :(得分:0)

通常,将:require:refer :all一起使用是不好的形式,因为它可能会在您不注意的情况下遮盖某些函数。

检查您在home.clj中所需的任何其他命名空间是否已经具有称为form-to的功能。尝试使用类似的东西:

(ns myapp.routes.home
  (:require [compojure.core :as cc :refer [defroutes GET]]
            [myapp.views.layout :as layout]
            [hiccup.form :as hf]))

(defn home []
  (layout/common [:h1 "Hello World!"]))

(defroutes home-routes
  (GET "/" [] (home)))