Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ui视图状态中使用D3_Javascript_Angularjs_D3.js - Fatal编程技术网

Javascript 如何在ui视图状态中使用D3

Javascript 如何在ui视图状态中使用D3,javascript,angularjs,d3.js,Javascript,Angularjs,D3.js,所以我有一个角度的应用程序,它使用ui路由器。假设我想在div.wtf中显示一个条形图,如下所示: index.html <div ui-view ></div> <div class="wtf"></div> js必须在控制器中吗?如果是这样,如何确保文档准备就绪?您可以使用自定义指令。它允许访问DOM,而无需关闭控制器 app.directive('bindDeeThreeStuff', function($window){ var d

所以我有一个角度的应用程序,它使用ui路由器。假设我想在
div.wtf
中显示一个条形图,如下所示:

index.html

<div ui-view ></div>
<div class="wtf"></div>

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>
编辑:示例

<div bind-dee-three-stuff="myData"></div>
$scope.myData = [10,20,30,40,50];