要观察的陷阱是AngularJS中的数据很脏

时间:2014-01-18 00:20:58

标签: javascript angularjs

我从REST获取technicalData,然后显示它。用户可以添加,修改一些参数。我看是否数据变脏,然后显示按钮保存。这是代码:

$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);

你认为这种方法存在任何缺陷吗?

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

1 个答案:

答案 0 :(得分:0)

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

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

查看this fiddle