Ich verwende derzeit eine benutzerdefinierte Direktive in Angular, um meine angular-nvd3-Diagramme zu skalieren, indem ich nach einer Größenanpassung für das Eltern-div suche. Das funktioniert, aber ich muss jedes Diagramm neu zeichnen, auch wenn nur ein Diagramm skaliert wird.Vererbung in AngularJs-Richtlinien Link-Funktion
Ist es möglich, die Funktion updateHeight und updateWidth in der abgeleiteten benutzerdefinierten Anweisung zu überschreiben, um jedes einzelne Diagramm zu aktualisieren, damit ich Code nicht durch Erstellen separater Anweisungen duplizieren muss.
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>
Dank @george Ich werde versuchen, dies jetzt – ganeshran
Es funktioniert wie ein Charme. Vielen Dank!! – ganeshran