我已经定义了一些按预期工作的拖动行为,如下所示(CoffeeScript中的代码):
nodeDrag = d3.behavior.drag()
.on("dragstart", (d, i) ->
force.stop())
.on("drag", (d, i) ->
d.px += d3.event.dx
d.py += d3.event.dy
d.x += d3.event.dx
d.y += d3.event.dy
tick())
.on("dragend", (d, i) ->
force.resume()
d.fixed = true
tick())
// ...
nodes = vis.selectAll(".node")
.data(graph.nodes)
.enter()
.append("g")
// ...
.call(nodeDrag)
Run Code Online (Sandbox Code Playgroud)
我现在尝试为节点上的右键单击创建自定义行为.然而,这会触发"dragstart"和"drag",即在我调用e.preventDefault()
"contextmenu"事件之后,有问题的节点会粘在我的鼠标指针上并跟随它,直到我再做一次(左)单击以强制释放(我认为e.preventDefault()
也会导致"dragend"从不开火.
我在Google网上论坛的一个主题中找到了对此问题的简短讨论,并在Github上讨论了d3的问题.但是,我无法从这些评论中弄清楚如何防止这种行为.
如何在右键单击时不触发拖动?
我正在尝试使用Slick 1.0.0 创建一个查询,该查询返回与以下SQL语句等效的行计数:
SELECT COUNT(*) FROM table;
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是:
val query = for {
row <- Table
} yield row
println(query.length)
Run Code Online (Sandbox Code Playgroud)
这打印scala.slick.ast.FunctionSymbol$$anon$1@6860991f
.此外,query.length
似乎是类型scala.slick.lifted.Column
.我找不到执行查询的方法.我可以在文档和其他任何地方找到的所有示例Column
都不适用于ScalaQuery或不适用于ScalaQuery,并且不再起作用.
我该怎么做才能执行此操作?
我正在尝试使用interact
函数生成交互式Haskell程序map
.
这是我在ghci中得到的(据我所知,这是所有教程解释interact
用法的方式- 结果除外).
*Module> interact $ unlines . map (++ "!") . lines
tteesstt
!
Run Code Online (Sandbox Code Playgroud)
请注意,实际发生的是我输入的每个字符都会立即重复,然后按Return键后会出现感叹号.然而,我期待这样:
*Module> interact $ unlines . map (++ "!") . lines
test
test!
Run Code Online (Sandbox Code Playgroud)
如果我使用相同的程序结构,它可以完美地工作,而filter
不是map
.
使用Slick,我试图将数据库表条目直接投影到它们所代表的案例类.按照文档中的示例,我使用<>
运算符设置了映射投影:
case class SomeEntity3(id: Int, entity1: Int, entity2: Int)
val SomeEntityTable = new Table[SomeEntity3]("some_entity_table") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def entity1 = column[Int]("entity1")
def entity2 = column[Int]("entity2")
def * = id ~ entity1 ~ entity2 <> (SomeEntity3, SomeEntity3.unapply _)
}
Run Code Online (Sandbox Code Playgroud)
现在,我想为SomeEntity3添加一些静态常量和辅助方法.为此,我创建了一个伴侣对象.但是只要我加入这条线
object SomeEntity3
Run Code Online (Sandbox Code Playgroud)
一个非常疯狂的多行错误弹出,用于定义*
说"使用替代方法重载方法值<>"时难以辨认的内容.
伴侣对象如何与Slick中的双向映射相关,我能以某种方式实现我的目标吗?
Scala SeqLike
实现了一种方法contains
.如何干净地实现containsAny
功能?
假设我想知道字符串是否string
包含以下任何列入黑名单的字符blacklist
:
val blacklist = List("(", ")", "[", "]", "{", "}", "<", ">")
string containsAny blacklist
Run Code Online (Sandbox Code Playgroud)
如何干净地实施第二条线的最佳方法是什么?
到目前为止我的版本看起来像这样:
(blacklist.view map string.contains) contains true
Run Code Online (Sandbox Code Playgroud)