У мене є веб-сторінка, яка служить редактором для однієї сутності, яка є глибинним графіком у властивості $ range.fieldcontainer. Після отримання відповіді від мого API REST (через $ ресурс) я додаю годинник до «fieldcontainer». Я використовую цей годинник, щоб визначити, чи сторінка / сутність "брудна". Зараз я змушую відскокнути кнопку збереження, але дуже хочу зробити кнопку збереження невидимою, поки користувач не забруднить модель.
Що я отримую, це один пусковий механізм годинника, який, на мою думку, відбувається, тому що призначення .fieldcontainer = ... відбувається відразу після того, як я створю свій годинник. Я думав просто використати властивість "dirtyCount" для поглинання початкової помилкової тривоги, але це відчуває себе дуже хакітним ... і я зрозумів, що має бути "кутовий ідіоматичний" спосіб вирішення цього питання - я не єдиний використовуючи годинник для виявлення брудної моделі.
Ось код, де я встановив годинник:
$scope.fieldcontainer = Message.get({id: $scope.entityId },
function(message,headers) {
$scope.$watch('fieldcontainer',
function() {
console.log("model is dirty.");
if ($scope.visibility.saveButton) {
$('#saveMessageButtonRow').effect("bounce", { times:5, direction: 'right' }, 300);
}
}, true);
});
Я просто думаю, що для цього повинен бути більш чистий спосіб, ніж захист коду "забруднення інтерфейсу користувача" за допомогою "if (dirtyCount> 0)" ...
undefined
. Він має значення за замовчуванням, яке необхідне, якщо в моїй моделі оновлення не зібралася вся інформація. Тож деякі значення не змінюються, а повинні запускатись.