angular-todo style editting
finish the entire edit logic, seems to work alright, need to add test cases for different scenarios