an angular directive for inline editing