단일 엔티티의 편집기 역할을하는 웹 페이지가 있는데 $ scope.fieldcontainer 속성에 깊은 그래프로 표시됩니다. $ resource를 통해 REST API에서 응답을 얻은 후 '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)"으로 "UI dirtying"코드를 보호하는 것보다이 작업을 수행하는 더 확실한 방법이 있어야한다고 생각합니다.
undefined
. 내 모델 업데이트가 모든 정보를 제공하지 않는 경우 필요한 기본값이 있습니다. 따라서 일부 값은 변경되지 않지만 트리거되어야합니다.