1
使用例: データが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でデータの変化を見ることができました。しかし、私が手動でページをリフレッシュするまで、サンバーストチャートはまったく更新されません。
で
config="{refreshDataOnly: false}"
あなたはそのためplunkerを準備してもらえますか? Angular/NVD3を使用して私のフォークを実行することができます:http://plnkr.co/N6lWYU – Ataisバックエンドのデータが変更されたときに信号を送信するサービスがあります。コントローラが信号を受け取ると、関数 'grabData()'が呼び出され、 '$ scope.data'が更新されます。 HTMLはデータを反映します。つまり、 '$ scope.data'は変更されましたが、グラフは更新されません。コードは上記のとおりです! @Atais – ThatBird
'deepWatchData:true'はトリックを行い、グラフを更新する必要があります。そうではありません。だからこそ、問題をプランカードで再現しようとするべきです。このアプローチでは、問題を切り分けます。この問題は、アプリケーション内の別の場所にある可能性があります。 – Atais