我目前在 Angular 中使用自定义指令通过观察父 div 的大小来调整我的 angular-nvd3 图表的大小。这可行,但我必须在调整大小的单个图表上重新绘制每个图表。
是否可以在派生的自定义指令中覆盖 updateHeight 和 updateWidth 函数来刷新每个单独的图表,这样我就不必通过创建单独的指令来复制代码。
angular.module('app.graphs').directive('flexibleDiv', function () {
return {
scope: {
opts: '='
},
link: function (scope, element, attr) {
// Watching height of parent div
scope.$watch(function () {
return element.parent(0).height();
}, updateHeight);
// Watching width of parent div
scope.$watch(function () {
return element.parent(0).width();
}, updateWidth);
function updateHeight() {
scope.$parent.scatter_api.refresh();
scope.$parent.focus_api.refresh();
scope.$parent.scatter_twoaxis_api.refresh();
}
function updateWidth() {
scope.$parent.scatter_api.refresh();
scope.$parent.focus_api.refresh();
scope.$parent.scatter_twoaxis_api.refresh();
}
}
}
<div class="widget-body no-padding" flexible-div>
<nvd3-scatter-chart data="scatter_data" api="scatter_api"></nvd3-scatter-chart>
</div>
</div>