如何在ui-view状态中使用D3
How to use D3 inside a ui-view state
我有一个使用ui-router的angular应用。假设我想在div.wtf
中显示一个柱状图,如下所示:
index . html
<div ui-view ></div>
state1.html
<div class="wtf"></div>
js:
var dataset = [5,3,2,2,10];
d3.select('.wtf').selectAll('div')
.data(dataset)
.enter()
.append('div')
.attr('class', 'bar')
.style('height', function (d) {
return d * 5 + 'px';
});
js必须在控制器中吗?如果是这样,我如何确保文件准备好了?
您可以使用自定义指令。它提供了对DOM的访问,而不会破坏你的控制器。
app.directive('bindDeeThreeStuff', function($window){
var d3 = $window.d3;
return function(scope, elem, attrs) {
var d3Elem = d3.select(elem[0]);
scope.$watch(attrs.bindDeeThreeStuff, function(val) {
d3Elem.selectAll('.bar').data(val)
.enter()
.append('div')
.attr('class', 'bar')
.style('height', function(d) {
return d * 5
});
});
};
});
在你看来:
<div bind-dee-three-stuff="myData"></div>
在你的控制器中:
$scope.myData = [10,20,30,40,50];
编辑:例子
下面是一个简单指令的快速示例,它将data与d3绑定。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 事件和状态
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 获取选择框的状态
- 如何在d3.js中返回路径的y坐标
- d3基于用户选择动态更新节点
- 相位器状态未捕获参考错误
- 有条件更新d3.js力图中节点的最佳方法
- 如何更改reactjs中外部/独立组件的状态或属性
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 如何使用密码检测网络中的状态连接
- 使用D3.js计算带有字母间距的文本长度
- d3.js保存状态
- 如何获取浏览器's”;背面“;按钮以清除d3.js可视化的先前状态
- 如何在d3.js中的每个状态中添加标签(albersUsa)
- 捕获D3库创建的可视化并将状态存储在DB中
- 如何在g元素中选择特定元素并在D3.js中更改其状态
- 如何在ui-view状态中使用D3
- 鼠标停留在一个状态上,用d3地图改变其他状态的颜色
- 使用d3-js和country topojson文件分别绘制状态