当观察AngularJS中的模型更改时,如何忽略初始负载?
发布时间:2020-12-17 09:21:07 所属栏目:安全 来源:网络整理
导读:我有一个网页作为单个实体的编辑器,它作为一个深层图在$ scope.fieldcontainer属性。在我从我的REST API(通过$ resource)获得响应后,我向“fieldcontainer”添加一个手表。我使用这个手表来检测页面/实体是否“脏”。现在我使保存按钮反弹,但真的我想让保
我有一个网页作为单个实体的编辑器,它作为一个深层图在$ scope.fieldcontainer属性。在我从我的REST API(通过$ resource)获得响应后,我向“fieldcontainer”添加一个手表。我使用这个手表来检测页面/实体是否“脏”。现在我使保存按钮反弹,但真的我想让保存按钮不可见,直到用户弄脏的模型。
我得到的是手表的一个触发器,我认为发生,因为.fieldcontainer = …分配是在我创建我的手表后立即发生。我在想只是使用一个“dirtyCount”属性来吸收初始的假警报,但感觉非常hacky …我想,有一个“角度习惯”的??方式来处理这 – 我不是唯一的使用手表检测脏模型。 这里是我设置我的手表的代码: $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); }); 我只是一直认为,有一个更干净的方式来做这个比保护我的“UI脏”代码与“if(dirtyCount> 0)”…
在初始加载之前设置标志,
var initializing = true 然后当第一个$ watch激发,做 $scope.$watch('fieldcontainer',function() { if (initializing) { $timeout(function() { initializing = false; }); } else { // do whatever you were going to do } }); 标志将在当前摘要周期结束时被删除,因此下一个更改不会被阻止。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |