如果我有以下对象$scope.object1
,它看起来像这样:
{
"firstName": "Name"
"lastName": "Name"
"startingDate": "08/Nov/2016"
"endingDate": "16/Dec/2016"
"description": "asd"
}
我有一个表单从后端获取这些值,并在输入字段中使用它们来表示日期和描述。
这些字段是可编辑的,因此更改表单字段中的startingDate
将更改object1
中的开始日期。
我需要根据$scope.object1
的初始值显示一些内容与提交表单后的值相同。
换句话说,如果没有任何改变。
如何保存object1
的初始值并在修改表单后将它们与值进行比较?
答案 0 :(得分:0)
您可以在编辑对象之前使用java.util.logging
存储对象,并在编辑后使用angular.copy()
将其与修改后的版本进行比较
angular.equals()
答案 1 :(得分:0)
Angular有两种不同的方法来检查对象的变化。
1-检查表单是否更改 如果您在表单中使用类似ng-model的对象,则可以使用属性$ dirty。
<form name="myForm" ng-submit="processForm()" class="p-lg">
//inputs
<input type="text" id="firstName" ng-model="object1.firstName">
//...
</form>
控制器
...
var objCopy = angular.copy($scope.object1);
...
$scope.processForm = function(){
if($scope.myForm.$dirty){
console.log('some field in the object change');
//you can check the specific variable that you want and use the old one
}
}
...
2-观看对象或特定密钥(将在每个摘要中进行评估)
//controller
$scope.$watch('object1.firstName', function(newVal, oldVal){
console.log('firstName change',oldVal, newVal );
}, true);