Angular nvd3 sunburst不会更新$ scope.data更改

时间:2016-07-21 08:52:08

标签: javascript angularjs angularjs-scope angular-nvd3

使用案例 当数据从api更改时,$scope.data也会发生变化。我可以在html中看到数据的变化。预计会有旭日图表更新。

以下是核心代码:

控制器:

var grabData=function(){
  $http.get('someApi').then(function success(response){
  $scope.options = {
        chart: {
            type: 'sunburstChart',
            width:450,
            height: 450,
            color: d3.scale.category20c(),
            duration: 250,
            mode: 'size',
            useInteractiveGuideline:true,
        }
    };
    $scope.config = {
        visible: true, // default: true
        disabled: false, // default: false
        refreshDataOnly: true, // default: true
        deepWatchOptions: true, // default: true
        deepWatchData: true, // default: true
        deepWatchDataDepth: 2, // default: 2
        debounce: 10 // default: 10
    };
        $scope.data = [];
        $scope.data.push({"name":"PORTFOLIO", "children":response.data});
    },function error(response){
      $scope.all = response.statusText;
  });};

HTML:

<div class="col-md-6 col-md-offset-1">
  <nvd3 options="options" data="data" config="config" class="with-3d-shadow with-transitions"></nvd3>
</div>

问题: 现在,当数据从api更改时,$scope.data也会发生变化。我可以在html中看到数据的变化。但是,在我手动刷新页面之前,旭日图表根本不会更新。

1 个答案:

答案 0 :(得分:1)

所以修复非常简单,你必须传递refreshDataOnly:false。

您的配置中

config="{refreshDataOnly: false}" -

<nvd3 options="options" data="sunburst" config="{refreshDataOnly: false}" class="with-3d-shadow with-transitions"></nvd3>