An Angular directive for inline editing