小编nko*_*ren的帖子

将新节点添加到强制定向布局

关于Stack Overflow的第一个问题,请耐心等待!我是d3.js的新手,但一直对其他人用它能够完成的事情感到惊讶......而且我自己用它做出的一点点进展几乎令人惊讶!很明显,我不是在找东西,所以我希望这里善良的灵魂可以向我展示光明.

我的目的是创建一个可重用的javascript函数,它只执行以下操作:

  • 在指定的DOM元素中创建一个空白的力导向图
  • 允许您向该图表添加和删除带标签的图像承载节点,并指定它们之间的连接

我把http://bl.ocks.org/950642作为起点,因为这基本上是我想要创建的那种布局:

在此输入图像描述

这是我的代码的样子:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="underscore-min.js"></script>
    <script type="text/javascript" src="d3.v2.min.js"></script>
    <style type="text/css">
        .link { stroke: #ccc; }
        .nodetext { pointer-events: none; font: 10px sans-serif; }
        body { width:100%; height:100%; margin:none; padding:none; }
        #graph { width:500px;height:500px; border:3px solid black;border-radius:12px; margin:auto; }
    </style>
</head>
<body>
<div id="graph"></div>
</body>
<script type="text/javascript">

function myGraph(el) {

    // Initialise the graph object
    var graph = this.graph = {
        "nodes":[{"name":"Cause"},{"name":"Effect"}],
        "links":[{"source":0,"target":1}]
    };

    // Add and …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js force-layout

88
推荐指数
1
解决办法
3万
查看次数

将变量用于部分模板

我肯定错过了Handlebars的工作方式.我需要根据变量的值调用不同的partial.目前,我发现这样做的唯一方法是:

<template name="base">
  {{#if a}}{{> a}}{{/if}}
  {{#if b}}{{> b}}{{/if}}
  {{#if c}}{{> c}}{{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)

并在相应的JS中:

Template.base.a = function () {
  return (mode === "a");
}

Template.base.b = function () {
  return (mode === "b");
}

Template.base.c = function () {
  return (mode === "c");
}
Run Code Online (Sandbox Code Playgroud)

......这让我非常啰嗦.我真正想做的是:

<template name="base">
  {{> {{mode}} }}
</template>
Run Code Online (Sandbox Code Playgroud)

换句话说,值mode将是被调用的partial的名称.

这似乎是一个非常常见的用例,但我在网上找不到任何这样的例子.我哪里出错了?

partials handlebars.js

17
推荐指数
2
解决办法
9654
查看次数

Excel VBA - 使用单维数组的下标超出范围

这是一个非常简单的问题,但我已经打了一个小时.我正在尝试执行以下操作:

  1. 从我的电子表格中的命名区域定义VBA数组
  2. 访问该数组中的项目

现在,如果命名范围恰好覆盖多维区域(行和列),那么这很好:

foobar = Range("two_dimensional_range")
MsgBox foobar(1,1)
Run Code Online (Sandbox Code Playgroud)

但是,如果命名范围由单个维度(仅一列)数据组成,则会产生"下标超出范围"错误:

foobar = Range("one_dimensional_range")
MsgBox foobar(1)
Run Code Online (Sandbox Code Playgroud)

我已经证实foobar真的是一个阵列.我可以使用For Each ... Next迭代它.如果我调用Ubound(foobar),它会给我正确的大小.我只是无法直接访问它的单个元素!

我究竟做错了什么?

excel vba excel-vba

3
推荐指数
1
解决办法
3685
查看次数