Почему compojure-app и hiccup не могут импортировать функцию hiccup.form / form-to? - PullRequest
0 голосов
/ 25 января 2019

Я использую «lein new compojure-app» для создания веб-проекта, сбой уже импортирован в project.clj:

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

и я вижу файл jar

Я использую intellij для ide, в home.clj:

(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 говорит мне, что я могу использовать функцию: group, input-filed, make-id, make-name, with-group, но без form-to, но form-to является функцией в пакете hiccup.form

Как мне это исправить?

1 Ответ

0 голосов
/ 29 января 2019

Как правило, использование :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)))
...