Как такое сделать на Angular.js? И вообще на нем ли нужно?
Как бы это базовые вещи при работе с angular (да и другими собратьями).
Тут даже тыкать некуда. Это основы. Просто открыть документацию по Anguar, и буквально в первых же разделах будет вся эта информация.
В контроллере держите список редактируемых элементов. А в нем уже потом добавляете/редактируете данные.
Коротко по некоторым пунктам (другие слишком очевидны, по-моему):2. Появляется форма(в модальном окне)
https://github.com/likeastore/ngDialog4. Потом это модальное окно можно снова открыть. изменить поля, нажать отмена и поля останутся старыми. Или нажать сохранить и поля изменятся
В модальном окне используется отдельная переменная, после чего при сохранении - пишется/обновляется элемент в списке, при отмене - ничего не делается.8. Ну а потом в нужный момент все это отправляется на сервер :)
Для этого добавляете сервис (не делайте запрос в контроллере), через него и взаимодействуйте с сервером.Писать за меня это естественно не нужно. Если это делается на angular - ткните в нужное место в документации. 
Как и было сказано, это обычные CRUD операции, которые очень просто реализовать