小编Kyl*_*win的帖子

多行svg文本轴在d3中打勾

我试图渲染一个简单的条形图,其中每个条形的标签为x轴上的轴标记.较长的标签相互影响.由于svg文本元素不支持自动换行,我一直在研究替代解决方案.

更改进入标签的类别文本以包含正确的<tspan>元素不起作用,因为文本未设置为innerHtml,而只是元素的原始文本.我还考虑过后处理标签以删除文本并用tspans替换它,但我还没有找到一种优雅的方法来做到这一点.

不幸的是我不能使用foreignObject,因为我需要IE9支持,但无论如何,许多相同的标记替换问题都适用于该解决方案.

有没有人过去很好地解决了这个问题或有任何建议?

svg d3.js

8
推荐指数
1
解决办法
3751
查看次数

如何在Clojure中使用尾递归来运行AST

我有一个ANTLR3 AST,我需要遍历一个后序,深度优先遍历,我已经实现了大致如下的Clojure:

(defn walk-tree [^CommonTree node]
  (if (zero? (.getChildCount node))
    (read-string (.getText node))
    (execute-node
      (map-action node)
      (map walk-tree (.getChildren node)))))))
Run Code Online (Sandbox Code Playgroud)

我想使用循环... recur将其转换为尾递归,但我无法弄清楚如何有效地使用显式堆栈来执行此操作,因为我需要进行后序遍历.

antlr functional-programming tail-recursion clojure antlr3

5
推荐指数
2
解决办法
1398
查看次数

错误:类型"执行"不存在

我正在尝试编写一个PL/PgSQL函数,它将执行存储在PostgreSQL表中的查询,如下所示:

CREATE OR REPLACE FUNCTION evaluate_scenario(scenario_id int)
RETURNS TABLE(line_item_id int, organization_id int, data_element_id int, value varchar) AS $$
BEGIN
  RETURN QUERY
  SELECT
    li.id,
    li.organization_id,
    de.id,
    (EXECUTE 'SELECT ' || de.query)::varchar
  FROM
    line_items AS li INNER JOIN
    summary_files AS sf ON li.summary_file_id = sf.id INNER JOIN
    scenarios AS s ON s.summary_file_id = sf.id CROSS JOIN
    data_elements AS de
  WHERE
    s.id = 1 AND
    de.scope = 3 AND (
      de.model_id = s.model_id OR
      de.scenario_id = s.id OR
      de.organization_id = s.organization_id
    );
END; …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

2
推荐指数
1
解决办法
1957
查看次数