请参阅fiddle with html:
<div get-width class="output">{{ inputText | uppercase }}</div>
指令:
myApp.directive('getWidth', [function () {
function link(scope, element, attrs) {
scope.textSize = getTextWidth(element.text(), "95px Arial");
}
return {
restrict: 'A',
link: link
};
}]);
在应用了所有其他子指令并应用了过滤器之后,尝试使用指令计算文本的宽度。不幸的是,过滤器似乎总是在指令之后应用。宽度计算始终在&#34; {{inputValue |大写}}&#34;而不是评估值。
如果之后应用了过滤器,我会很好,但随后因为元素发生了变化而导致重新评估该指令。但我似乎无法将指令绑定到元素上。
我不想使用参数传递所有内容或传递$ filter服务并在计算宽度之前手动过滤输入,因为我不知道可以使用哪些过滤器。其他开发人员可以使用此指令(它现在只是一个示例),因此它可以包含任何输入和任意数量的链接过滤器。有没有办法在运行getTextWidth()之前评估元素?
此功能可用于调整页面中的元素,因此我希望避免$ timeout并导致额外的油漆(闪烁)。
任何帮助都将不胜感激。