У меня есть завод с, который возвращает новый объект:RejectChanges() не отменяет изменения при внесении изменений в новый объект?
//myDataFactory
//some other code here...
function create() {
return manager.createEntity(entityName);
}
В моем контроллере, когда все бэкенд возвращает 404 (не найдено), я просто спусковой механизм, который create()
метод, когда контроллер включен, в противном случае я установите объект на все, что было возвращено.
//myDataController
//some other code here...
init();
function init() {
var promises = [
getMyData()
];
console.log('populating MyData');
return q.all(promises).then(function(){
logger.info('populated MyData.');
});
}
function getMyData() {
return myDataFactory.getMyData(true).then(
setMyData,
createNewMyData
);
}
function setMyData(data) {
vm.myData = data[0];
}
function createNewMyData() {
vm.myData = myDataFactory.create();
}
В пользовательском интерфейсе, у меня есть кнопка отмены, которая просто вызывает эту функцию в myDataController:
function undo() {
vm.myData.entityAspect.rejectChanges();
vm.termsForm.$setPristine(true);
}
undo()
выше функция работает очень хорошо, когда есть объект, возвращаемый из базы данных. Но когда я пытаюсь внести изменения во вновь созданный объект, который еще не сохранен, когда я нажимаю кнопку «Отменить», он не возвращается к исходному значению. Зачем? Как это разрешить? Любая помощь будет принята с благодарностью. : D
Я использую angularjs с бритом.
привет, спасибо за ответ! Теперь ваше объяснение стало более ясным! С помощью метода create() выше, есть ли способ для меня иметь тот же эффект, что и отменить для несохраненных объектов? Как, например, если объект еще не сохранен (как в действительно новом - со всеми значениями пустым), а пользователь вводит некоторые изменения, но решает поразить отмену, он просто вернется в свое совершенно новое состояние? – Petra
Если нет, есть ли способ узнать, является ли объект новым (несохраненным) без вызова в бэкэнд? Возможно, я мог бы просто сделать оператор if, который очищает данные, если объект является новым, иначе вызовите rejectChanges(). – Petra
Моя первоначальная мысль состояла в том, чтобы проверить, не является ли идентификатор положительным числом, достаточно ли это было бы достаточно надежным? – Petra