我正在尝试构建一个小型om-组件,它使用goog.fx.Dragger使目标可拖放。我需要goog.fx.Dragger :作为拖放器,就像这样:
(ns om-draggable-me.core
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]
[goog.fx.Dragger :as dragger]))当我用它的时候:
(defn draggable [app owner]
(reify
om/IDidMount
(did-mount [_]
(let [target (om/get-node owner)]
(dragger. target)))
om/IRender
(render [_]
(dom/div #js {:id "drag-box" :className "drag-box"}))))我收到编译器警告:
警告:在第22行src/cljs/om_draggable_me/core.cljs上使用未声明的Var om-draggable-me.core/dragger
看到了使用goog.fx.DragDrop的其他例子,那么为什么这不起作用呢?
发布于 2014-12-13 15:26:58
在require表单中,dragger是一个命名空间别名。
[goog.fx.Dragger :as dragger]它的用途如下:
dragger/your-var
;; the same as goog.fx.Dragger/your-var在您的脚本中,它被用作一个var:
(dragger. target)而且,正如编译器所抱怨的那样,还没有定义这样的var。
您可以看到有人这样引用clojure.string:
(require '[clojure.string :as str])不必担心与clojure.core/str函数冲突:
(str/join ", " [1 2 3])
(str "hello" "world")发布于 2014-10-02 19:28:31
由于某些原因,别名不起作用,它使用完全限定的名称:
(did-mount [_]
(let [target (om/get-node owner)]
(goog.fx.Dragger. target)))https://stackoverflow.com/questions/26155304
复制相似问题