如果值为空,ng-model 将从对象中删除元素

ng-model deletes element from object if the value is empty

本文关键字:对象 删除 元素 ng-model 如果      更新时间:2023-09-26

我正在使用$resource服务来访问和更新API上的资源。

但是,当绑定到 ng 模型的对象的值设置为空时,我遇到了问题。绑定元素将从对象中删除。因此,在保存我的资源时,传递的数据中不存在该元素。

angular.module('myApp', [])
.controller('myCtrl', function($scope, $resource) {
   var Person = $resource('persons/:id.json', {id: @id});
   $scope.data = Person.get({id:123});
});

例如:data.name 在下面的模板中设置为":

<div ng-controller="myCtrl">
   <input type="text" ng-model="data.name" />
   <input type="button" ng-click="data.$save()" value="Save" />
</div>

保存时我需要传递给的数据上存在的元素,因为它将确定 API 是否会将属性的实际值设置为空。否则,该属性不会更新,并保留其旧值。

如果有人遇到同样的问题,问题不在于ng模型,而在于我作为输入的一部分添加的验证

<input type="text" ng-model="data.name" ng-required="true" />

它不是上面问题中显示的代码的一部分,但它与 ng-required 相关