Ich versuche, die Elementbreite innerhalb einer Direktive zu erhalten.So erhalten Sie die Breite des Direktivenelements
Ich habe so etwas wie
html
<my-dir title=“toy.title” ng-if=“toy.name”></my-dir>
Richtlinie
(function() {
'use strict';
angular.module(‘myApp’)
.directive(‘myDir’, myDir);
function myDir() {
var directive = {
template: '<div class=“myClass”>Test here</div>',
restrict: 'E',
controller: testCtrl
};
return directive;
}
function testCtrl($element) {
console.log($element[0].clientWidth()) -> output 0
}
})();
Ich brauche die Elementbreite, um meine Funktion zu bauen, aber es gibt 0, wenn es hat Zeichenfolge ‘Test here’
in der Element. Es sollte größer als 0 sein. Ich bin mir nicht sicher, was schiefgelaufen ist. Kann mir jemand dabei helfen? Danke vielmals!
Können Sie Ihre Controller-Klasse hinzufügen? Wenn dies nicht der Fall ist, sollten Sie dieser Struktur eine Controller-Klasse hinzufügen. – oguzhan00
Sicher, 'clientWidth' ist eine Methode von HTML-DOM-Knoten? Ich habe es immer als eine Eigenschaft zugegriffen. Vielleicht funktioniert es auch als Funktionsaufruf? Ich meine '$ element [0] .clientWidth' VS' $ element [0] .clientWidth() ' – plong0