Javascript 要注意的陷阱是AngularJS中的数据脏

Javascript 要注意的陷阱是AngularJS中的数据脏,javascript,angularjs,Javascript,Angularjs,我从REST中获取技术数据,然后显示它。用户可以添加、修改一些参数。我观察数据是否变脏,然后显示保存按钮。代码如下: $http.get(someurl).success(function(data){ $scope.technicalData = data; }); $scope.technicalData = {}; var unregisterTechnicalDataWatch = $scope.$watch('technicalData ', function(newValue,

我从REST中获取技术数据,然后显示它。用户可以添加、修改一些参数。我观察数据是否变脏,然后显示保存按钮。代码如下:

$http.get(someurl).success(function(data){
  $scope.technicalData = data;
});
$scope.technicalData = {};
var unregisterTechnicalDataWatch = $scope.$watch('technicalData ', function(newValue, oldValue){
     if(Object.keys(oldValue).length !== 0) {
        $scope.technicalData._dirty = true;
        unregisterTechnicalDataWatch();
     }
},true);
您认为这种方法有什么缺陷吗?


我知道有,但我没有找到任何好的例子。

无论如何,你会希望避免这种做法。我建议使用表单控制器。然后,当表单被弄脏时,您可以执行以下操作来显示/隐藏保存按钮:

<form name="form" ng-submit="save()">
Name: <input ng-model="name"/>
<button type=submit ng-show="form.$dirty">Save</button>
</form>

姓名:
拯救

签出。

没有找到任何示例?你在docs.angularjs.org/guide/forms上试过这些例子吗?@Stewie没有。好例子。AngularJS Docs是一场噩梦,我脆弱的灵魂无法处理如此不友好的环境。