在backbone.js中,视图的渲染函数生成未附加的html,稍后可以将其附加到dom.
目前,我必须在HTML中有一个现有目标才能将svg附加到.然后我使用data/enter模式将元素插入到svg中.有没有办法让d3.js生成svg而不将它附加到dom?
var svg = d3.select("#target").append('svg')
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
Run Code Online (Sandbox Code Playgroud)
或者,是否可以为d3提供一个未附加的dom元素来附加内容?像这样的东西?D3.js文档建议select可以接受节点,但以下内容对我也不起作用
var svg = d3.select(this.$el).append('svg') // Uncaught TypeError: Object [object Object] has no method 'appendChild'
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data([1,2,3])
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
Run Code Online (Sandbox Code Playgroud) 我有一个简单的节点与mongo(通过mongojs)应用程序,本地开发并部署在heroku上.在我的开发环境中,我想使用mongo的本地实例,而在生产中,我想通过"process.env.MONGOLAB_URI"使用heroku提供给我的实例.
我目前的方法是根据环境变量设置datavase url,但是我如何实际进入生产模式?此外,我如何配置这个,以便当我在我的本地机器上开发其开发模式,当我上传到heroku其生产模式?
app.configure('production', function(){
// ...
databaseUrl = "mydb"; // the default
});
app.configure('development', function(){
// ...
databaseUrl = process.env.MONGOLAB_URI;
});
db = require("mongojs").connect(databaseUrl);
Run Code Online (Sandbox Code Playgroud) 有没有办法在具有一个或多个值的属性上创建维度?例如
{quantity: 2, total: 190, tip: 100, items: ["apple","sandwich"],
{quantity: 2, total: 190, tip: 100, items: ["ice-cream"]},
{quantity: 1, total: 300, tip: 200, items: ["apple", "coffee"]}
Run Code Online (Sandbox Code Playgroud)
我的目标是创建一个交叉过滤器,可以过滤掉具有序数值的维度的条目.有没有办法我写一个过滤器/尺寸,让我说"我想要所有条目'苹果''?
我能想到的唯一解决方法是为每个项目创建一个维度.像这样:
var paymentsByApple = payments.dimension(function(d) { return $.inArray("apple", d.items); });
var paymentsByCoffee = payments.dimension(function(d) { return $.inArray("coffee", d.items); });
// and one for every possible item
Run Code Online (Sandbox Code Playgroud)
主要问题是我不想枚举和硬编码所有不同的对象.而且,我最终可能会有很多可能的不同项目.有更聪明的方法吗?
提前致谢!