在注册表单上,我允许用户输入零个或多个电话号码。每个电话号码由一个前缀和一个号码组成,这是每个电话号码的两个字段。用户可以决定他想提供多少个数字,add more numbers
链接将克隆表单的这一部分。
Prefix: [_______]
Number: [_______]
+ add more numbers
我绑定的模型是固定的,应该是这种格式:
$scope.model = {
"...main inputs": "username, etc...",
phoneNumbers: [
// for each phone number I expect this object
{ "prefix": "+1", "number": "123123123" }
]
};
我不确定我应该如何设置ng-model
这些文本输入以在数组中生成这些对象。
此外,我非常喜欢引用绑定和限制范围监视和基于事件的范围更改等内容,因为这些更改通常不会被其他可能使用此值的指令注意到(除非被监视)。基本上,这意味着我打算在表单中填充数字时动态生成数组中的对象,或者在删除数字或两个输入都留空时动态删除数组中的对象。
数组应该只包含有效和填充的对象,不应该将部分填充的对象或空对象添加到模型或数组中(就像通常对具有无效值的属性所做的那样——这些属性会从模型对象中删除)。基本上将每个经过验证的对象推送到数组,并为每个无效对象删除(切片)对象。但随后相当自动,而不是编写推送/切片函数。