Ich bin ziemlich neu in Winkel- und ich möchte wie diese, eine Richtlinie schaffen, in AngularJS suchen:Steuerung mehrerer DOMS mit Winkeldirektive?
Mein Ansatz ist es, eine Vorlage mit so etwas wie zu machen:
Fortschrittsbalken. html
<div class="container">
<div class="progress-line"></div>
</div>
<div class="current"> 11min </div>
<div class="max"> 24min </div>
Dann CSS verwenden, um die Grafiken und einige Javascript in dem Link/kompilieren Funktion der Richtlinie zu machen, die Marker („11min“ und „24min“) an die richtigen Positionen zu bewegen, bec sonst kenne ich die Breite der Fortschrittsanzeige nicht vorher.
Ist das ein schlechter Ansatz? Ich habe niemanden gefunden, der mehrere DOMs in einer Direktive behandelt.
Für den Test habe ich versucht, den Container rot zu machen, wenn sie angeklickt:
app.directive('progressBar', function($timeout) {
var linkFn = function(scope, element, attrs) {
element.on("click", function() {
element.childNodes[0].css("background-color", "red");
});
};
return {
restrict: 'EA',
scope:{},
templateUrl: 'templates/directives/progress-bar.html',
link: linkFn
};
});
Aber das funktioniert nicht:
Uncaught TypeError: Cannot read property '0' of undefined
Okay, aber wie bekomme ich dann die Breite des Containers? – Jolle
Warum brauchen Sie die Breite des Containers? Lege einfach den Fortschrittsbalken in den Container und berechne den Prozentsatz – WalksAway
btw, du könntest dir 'bootstrap-ui' ansehen https://angular-ui.github.io/bootstrap/ es ist eine wirklich nützliche angularjs bootstarp-Bibliothek, die hat Fortschrittslinie Direktiven ... aber wenn Sie tot sind, ist es ziemlich einfach – WalksAway