AngularJS 仅重置模型中的某些字段

AngularJS Reset only certain fields in a model

我有一个带有表单的应用程序,表单域绑定到一个模型,包含每个表单域的属性。像这样:

var myFormFields = { 
   lastnamename: null,
   name: null,
   age: null,
   gender: null
};

我在应用程序中还有更多,但这只是一个例子。现在我想做的是创建一个重置函数。我创建的是一个将所有需要的属性设置回 null 的函数。

var resetForm = function() { this.age=null; this.gender=null;};

但我认为有某种默认形式会更好,这样它就可以复制到原始形式上:

var defaultForm = {age: null, gender: null};
myFormFields = angular.copy(defaultForm);

困难在于,上面的示例丢弃了我不想重置的属性。我不想重置所有属性,只重置 select 对。有没有一些方便的方法可以实现这一点,而无需循环遍历整个事情或不退回到我的第一个例子?

您可以使用 angular.extend。假设:

object1 = { a: null }
object2 = { a:123, b:456 }

然后 angular.extend(object2, object1) 将导致:

object2 -> {a:null, b:456}