を解決するのに役立ちます願っています。私は実際にそれをやっているダウントレースすることはできませんが、ここではあなたのための修正です:ここではhttp://plnkr.co/edit/jDQFV62FSeXAQJ6o7jE8
あなたは
以上
scope.$watch('config', function(newVal) {
if(angular.isDefined(newVal)) {
if(charts) {
charts.destroy();
}
var ctx = element[0].getContext("2d");
charts = new Chart(ctx, scope.config);
//scope.$emit('create', charts);
}
});
を持っていたもので、あなたが直接にscope.config
を渡していることがわかりますグラフメソッド。何らかの形でデータを変更しているように見えますが、それは参照渡しのため実際には$rootScope.sales.charts
を変更しています。そのオブジェクトをコピーして、以下のようにローカルで使用すると、その問題は発生しません。
ここで私はそれを修正しました。
scope.$watch('config', function(newVal) {
var config = angular.copy(scope.config);
if(angular.isDefined(newVal)) {
if(charts) {
charts.destroy();
}
var ctx = element[0].getContext("2d");
charts = new Chart(ctx, config);
//scope.$emit('create', charts);
}
});
あなたは私たちがコピー(angular.copy()
)を作るために、角度を使用し、それは私たちが渡したオブジェクトだ、代わりに直接、そのオブジェクトを渡すことがわかります。あなたが放出されるの作成イベントを処理している
ウォッチ? –
申し訳ありませんが、イベントは使用されていませんが、私は試行錯誤してこれを解決していましたが、失敗しました。 Plunkerから削除するのを忘れました –