无法使用必需的命名空间 class
Cannot use a required namespaced class
我有:
(ns test-1.core
(:require [goog.dom :as dom]
[goog.ui.Popup :as popup]
[goog.positioning.AbsolutePosition]
[rum.core :as rum]))
现在我可以:
(dom/getElement "popup")
但由于我不明白的原因我不能这样做:
(popup. .....)
相反,我必须写:
(goog.ui.Popup. .....)
为什么?
如果您查看 goog.ui.Popup
的 implementation,您会发现它是 class。这意味着我们需要使用 :import
.
而不是将其包含在 :require
中
(ns test-1.core
(:require [goog.dom :as dom])
(:import [goog.ui Popup]))
(Popup. (dom/getElement "popup"))
总的来说,对闭包 classes 和枚举使用 :import
,对其他所有内容使用 :require
。
我有:
(ns test-1.core
(:require [goog.dom :as dom]
[goog.ui.Popup :as popup]
[goog.positioning.AbsolutePosition]
[rum.core :as rum]))
现在我可以:
(dom/getElement "popup")
但由于我不明白的原因我不能这样做:
(popup. .....)
相反,我必须写:
(goog.ui.Popup. .....)
为什么?
如果您查看 goog.ui.Popup
的 implementation,您会发现它是 class。这意味着我们需要使用 :import
.
:require
中
(ns test-1.core
(:require [goog.dom :as dom])
(:import [goog.ui Popup]))
(Popup. (dom/getElement "popup"))
总的来说,对闭包 classes 和枚举使用 :import
,对其他所有内容使用 :require
。