角度が新しいです。 私はangular1.4とブートストラップを使用しています。 問題:バインドされているテキストの内容に応じて、幅が拡大または縮小するスパンがあります。スコープで要素の幅を計算する - 角度指令
<div myStyleDir>
<span>{{someContent}}</span>
</div>
:DOMでこのスパンの幅に基づいて
$scope.someContent = "abcdefgh";
、私はディレクティブmyStyleDirを使用してやりたいいくつかの他の計算を続行する必要があります。 ディレクティブのlink関数で、jQuery-Liteの 'element'パラメータの幅が '0'になっています。
'リンク'機能の実行中にスパンがレンダリングされていませんか? <span>{{someContent}}</span>
要素の幅をリンク機能内で取得するにはどうすればよいですか?これが実現可能な方法でない場合は、代替案を提案してください。前もって感謝します !
.directive('YourDirectiveName', function() {
return {
restrict: 'EA',
scope: {data:'='},
link: function(scope, iElement, iAttrs) {
var elementRect = iElement[0].getBoundingClientRect();
var width = elementRect.width;
var height = elementRect.height;
.......
}
}
});
注:
someContentモデルをディレクティブに渡して変更を監視し、幅を再計算してください –