Use JS to calculate height for detail content

And switch to angular event to handle initial reflow