小编Ren*_*aud的帖子

在d3中结合力和包布局

我有一个用标准力布局表示的图形.

节点可以按属性进行聚类.

我可以使用包布局来表示这些群集吗?

2个布局如何共存以及如何计算节点的x和y坐标?

编辑
我想我可能必须处理我的数据以将节点集群转换为包含集群层次结构作为属性的单个节点.我仍然会欢迎另一种方法,如果可能的话,不会强迫我重塑我的数据.

这是我转换为适合多布局方法的示例数据集.这里的问题是我无法链接集群的任何节点.

{
    "directed": true,
    "graph": [],
    "nodes": [
        {
            "id": "node0"
        },
        {
            "id": "node1"
        },
        {
            "id": "node2",
            "tree": {
                "name": "cluster",
                "children": [
                    {
                        "id": "node3"
                    },
                    {
                        "id": "node4"
                    },
                    {
                        "id": "node5"
                    }
                ]
            }
        }
    ],
    "links": [
        {
            "source": 0,
            "target": 1
        },
        {
            "source": 1,
            "target": 2
        },
        {
            "source": 0,
            "target": 2
        }
    ],
    "multigraph": false
}
Run Code Online (Sandbox Code Playgroud)

layout d3.js force-layout circle-pack

6
推荐指数
0
解决办法
1674
查看次数

如何在Javascript中更改节点的baseURI

MDN文档声称有改变的两种方法节点 .baseURI属性:

  • <base>在文档中找到HTML 标记时;(1)
  • 这是动态创建的新文档时。(2)

他们没有提供关于如何动态进行解释的说明(2)。他们还指出,您不应<base>在html文档中添加元素(1)。

如何.baseURI在Javacsript中动态更改属性?

[编辑]根据此SO使用base完全合法。那么MDN为什么对此提出建议?

html javascript dom

6
推荐指数
1
解决办法
2145
查看次数

假分支中带补码的类型保护

我正在尝试使用类型保护来缩小复杂类型的范围。我希望类型保护的错误分支能够理解缩小类型的补充

interface Model { side: 'left' | 'right'; }
interface LeftModel { side: 'left'; }
interface RightModel { side: 'right'; }
type Either = LeftModel | RightModel;

function isLeft(value: Either): value is LeftModel { // else is RightModel
  return value.side === 'left';
}
Run Code Online (Sandbox Code Playgroud)

这似乎不可能,至少不是我要处理的方式。Typescript 很高兴推断 anEither可以是模型,但它不接受 aModel可以是Either. 这是一个错误:

declare const model: Model;
isLeft(model) // ts(2345)
Run Code Online (Sandbox Code Playgroud)

这个问题是根本无法解决的吗?

如果没有,我如何让错误分支缩小到补码?

请参阅此Typescript Playground 中的完整示例

编辑

在这个简单的例子中,Model和看起来Either是等价的,但这可能无法概括。我可以通过组合两个类型保护来取得一些进展,试图通知Model实际上有效的类型系统Either(参见这个新的 …

functional-programming typescript typeguards

6
推荐指数
1
解决办法
152
查看次数

usemin定义自定义步骤选项

我有一个运行concat的gruntfile和带有特定选项的uglify(即mangle toplevel变量),然后我使用sed来更新index.html中对缩小文件的引用.由于sed,这个解决方案有效但不易维护.我试图使用usemin,但我无法弄清楚如何用uglifyjs的正确选项定义我自己的自定义步骤,而doco缺乏示例来做到这一点.我尝试使用之前写过的相同的uglify任务:

   uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
        mangle: {
            except: ['$', 'd3'],
            toplevel: true
        }
      },
      build: {
        src: 'demo/js/<%= pkg.name %>.js',
        dest: 'demo/js/<%= pkg.name %>.min.js'
      }
    },
    useminPrepare : {
        html : 'src/index.html',
        options: {
            flow: {
                steps: {'js' : ['uglify'] }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

Warning: Cannot find module 'path-to-module\node_modules\grunt-usemin\lib\config\uglify' Use --force to continue.

是否可以这样做,如果是这样,我在这里做错了什么?

uglifyjs gruntjs grunt-usemin

5
推荐指数
1
解决办法
1289
查看次数

配置 nginx 从自定义目录提供静态文件

所以我想使用 Nginx 从特定端口上的特定文件夹提供静态文件。

$ nginx -c `pwd`/nginx.conf
Run Code Online (Sandbox Code Playgroud)

我当地的情况 nginx.conf是这样的:

http {
    server {
        root .;
        listen 8080;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

nginx: [emerg] no "events" section in configuration
Run Code Online (Sandbox Code Playgroud)

我可以看到其中的事件部分/etc/nginx/nginx.conf,但我不想复制所有配置。必须有一种方法来使用默认设置和特定文件夹的不同端口号。

为了让它发挥作用,我缺少什么?

nginx

5
推荐指数
1
解决办法
1912
查看次数

打字稿感叹号括号

在 angular 网站上遇到过这个声明:

this.resolve !('hi there!');
Run Code Online (Sandbox Code Playgroud)

我不知道!在这种情况下可能意味着什么。我遇到过非空断言运算符,但不知何故我不认为这就是它的含义。任何的想法?

typescript angular

5
推荐指数
1
解决办法
360
查看次数

如何在节点调试器中列出范围变量

我想知道是否有办法在内置的node.js调试器中列出所有范围变量(以及可能的外部范围).到目前为止,我已成功使用以下方法访问全局范围:

debug> repl
> global
Run Code Online (Sandbox Code Playgroud)

但是有一个函数列出了本地范围变量或指向本地范围的指针吗?
有关详细信息,请参阅调试器命令全局对象.

debugging node.js

4
推荐指数
1
解决办法
1082
查看次数

使用Polymer的shadow DOM工作Boostrap的布局

在Chromium上开发一段时间之后,我意识到Chrome正确地实现了阴影DOM,而Chromium(尚未)并且打破了我的不太好的封装组件.这与其他SO问题有关,但更具体地针对网格布局而不仅仅是CSS.

如果布局是在顶级文档中完成的,那么它可以工作,但是如果它在自定义元素中完成则不起作用.正如在另一个问题中所建议的那样,我在组件中插入了相关的引导代码,但它们似乎仍然没有正确布局.这是一个有效的示例布局:

<!-- index.html -->
<div class="container-fluid">
  <div class="row">
    <my-element-a class="col-md-6">
    <my-element-b class="col-md-6">
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是一个不起作用的例子:

<!-- custom-element-c.html -->
<div class="container-fluid">
  <div class="row">
    <my-element-a class="col-md-6">
    <my-element-b class="col-md-6">
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法在Polymer自定义元素中使用Bootstrap网格布局?

layout twitter-bootstrap shadow-dom polymer

4
推荐指数
1
解决办法
2706
查看次数

聚合物中的横向交流

这是问题所在:

任何两个Polymer元素可能需要通信.没有假设这些元素在DOM(或阴影DOM)中的位置,这意味着一个事件不能简单地冒泡到另一个元素.

实现这一目标的好方法是让事件冒泡到根节点,然后在根节点上触发广播事件以供其他元素监听.

然而,这种方法打破了封装,似乎违背了Polymer的整体设计.例如,AngularJS提供了一个事件广播器,可以防止控制器不必要地保留对根节点的引用.

这种方法可以通过聚合物实现吗?否则可以用不同的方法解决这个问题吗?

javascript model-view-controller javascript-events polymer

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