我有一个网页,作为单个实体的编辑器,它作为$ scope.fieldcontainer属性中的深层图形.在我从REST API(通过$ resource)获得响应后,我将一个监视添加到'fieldcontainer'.我正在使用这个手表来检测页面/实体是否"脏".现在我正在使保存按钮反弹,但实际上我想让保存按钮不可见,直到用户弄脏模型.
我得到的是手表的单个触发器,我认为这是因为.fieldcontainer = ...分配在我创建手表后立即发生.我想只是使用"dirtyCount"属性吸收最初的误报,但感觉非常hacky ......而且我认为必须有一种"Angular惯用"方式来解决这个问题 - 我不是唯一一个用手表检测脏模型.
这是我设置手表的代码:
$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);
});
Run Code Online (Sandbox Code Playgroud)
我只是一直认为,除了用"if(dirtyCount> 0)"保护我的"UI脏"代码之外,必须有一个更清洁的方法...