我试图修改链接函数中某些元素的边距。指令 - 修改链接功能中的DOMD
这是我的代码:
scope.size = (($("#highlight .thumbs li").width() * $("#highlight .thumbs li").size()) + (20 * ($("#highlight.thumbs li").size() - 1)));
elem.find(".thumbs").addClass({ width : scope.size});
的事情是:在链接功能scope.size
是-20px;
如果我把代码100
毫秒延迟$timeout()
函数中,我得到了真正的值,这是252px
;
有一些技巧可以在渲染之后观察DOM以获取模板中宽度或元素的最终值吗?我不想用$timeout
来使视图中的元素闪烁。
您必须等到链接函数完成才能获取元素的大小,因为链接函数期间元素尚未插入到DOM中。但是,您不必等待100次,您可以忽略持续时间,这会在链接函数后立即执行代码。什么更好?你甚至可以使用本地'setTimeout'来设置宽度,以便不触发额外的摘要循环(如果你不需要在某处绑定scope.size)。 – Daiwei
请将你的问题发布在小提琴上,让我们一起玩吧 –
@戴维谢谢,我尽量没有时间使用,但仍然给我带来负面的价值。我可以在dom渲染后创建父代或子代指令来执行此代码吗? –