首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在goog.fx.Dragger中使用ClojureScript

不能在goog.fx.Dragger中使用ClojureScript
EN

Stack Overflow用户
提问于 2014-10-02 06:11:57
回答 2查看 169关注 0票数 1

我正在尝试构建一个小型om-组件,它使用goog.fx.Dragger使目标可拖放。我需要goog.fx.Dragger :作为拖放器,就像这样:

代码语言:javascript
复制
(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]))

当我用它的时候:

代码语言:javascript
复制
(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的其他例子,那么为什么这不起作用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-13 15:26:58

require表单中,dragger是一个命名空间别名。

代码语言:javascript
复制
[goog.fx.Dragger :as dragger]

它的用途如下:

代码语言:javascript
复制
dragger/your-var 
;; the same as goog.fx.Dragger/your-var

在您的脚本中,它被用作一个var:

代码语言:javascript
复制
(dragger. target)

而且,正如编译器所抱怨的那样,还没有定义这样的var。

您可以看到有人这样引用clojure.string

代码语言:javascript
复制
(require '[clojure.string :as str])

不必担心与clojure.core/str函数冲突:

代码语言:javascript
复制
(str/join ", " [1 2 3])
(str "hello" "world")
票数 1
EN

Stack Overflow用户

发布于 2014-10-02 19:28:31

由于某些原因,别名不起作用,它使用完全限定的名称:

代码语言:javascript
复制
(did-mount [_]
           (let [target (om/get-node owner)]
             (goog.fx.Dragger. target)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26155304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档