Defer resolving slider children to post() method.  AngularJS invokes compile before DOM is final and element passed into it can be changed later.  For example, when this slider is used inside another directive with replace:true, the elements cached from compile() will not be part of the DOM body element at runtime and this causes element.offsetWidth (and offsetParent) to be incorrect. offsetWidth will be zero if the element is not a child of body element. Resolving cached element references inside post() resolves this issue.