首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular dc.js滤波器问题

Angular dc.js滤波器问题
EN

Stack Overflow用户
提问于 2015-08-16 19:49:07
回答 1查看 1.3K关注 0票数 0

我正在使用这个angular addon和Angular一起使用dc.js图表。

我正在使用这个带有自定义行为的example,我添加了一个输入框,以便从输入框的值中过滤运行值,angular正在捕捉变量的变化,但dc.js没有相应地过滤。

下面是我的自定义html和js:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <title>dc.js - Pie Chart Example</title>
    <meta charset="UTF-8">
    	<link rel="stylesheet" type="text/css" href="//dc-js.github.io/dc.js/css/dc.css"/>
	<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
	<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.4.4/d3.min.js"></script>
	<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/crossfilter/1.3.7/crossfilter.min.js"></script>
	<script type="text/javascript" src="//dc-js.github.io/dc.js/js/dc.js"></script>
	<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.15/angular.min.js"></script>
	<script type="text/javascript" src="/angular-dc/dist/angular-dc.min.js"></script>
</head>
<body ng-app="app">
<!-- we nicely separate the view and the data. Here, all information concerning the way to display the data
is in the template -->
    

<div ng-controller="myController" dc-chart="pieChart" dc-chart-group="1"
     dc-width="780" dc-height="480" dc-inner-radius="100"
     dc-slices-cap="4"
     dc-dimension="runDimension" dc-group="speedSumGroup"
     dc-legend="dc.legend()">
    <input name="calypso" ng-model="calypso">
    <p>{{calypso}}</p>
    </div>

<script type="text/javascript">
var myApp = angular.module("app", ["angularDc"]);

myApp.controller('myController', ['$scope', function ($scope, Data) {
    $scope.Data = Data;
    d3.csv("morley.csv", function(error, experiments) {
        var ndx = $scope.ndx = crossfilter(experiments)
        $scope.runDimension  = ndx.dimension(function(d) {return d.Run;})
        $scope.speedSumGroup = $scope.runDimension.group().reduceSum(function(d) {return d.Speed * d.Run;});
		// for simplicity we use d3.csv, but normally, we should use $http in order for this
		// to be called in the $digest
        //$scope.$apply()
        $scope.$watch('calypso', function() {
           console.log(parseInt($scope.calypso,10));
           $scope.runDimension.filter(parseInt($scope.calypso,10));
       });
       $scope.$apply();
    });
    
    
      
}]);
</script>

</body>
</html>

EN

回答 1

Stack Overflow用户

发布于 2015-08-16 22:54:06

您是否有权访问全局命名空间中的dc对象?还是通过指令?我假设你需要调用dc.redrawAll() (documented here),因为在你以某种方式通知dc.js图表/指令之前,它们不会意识到你改变了交叉过滤器上的过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32034746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档