HTML中的输入名称为“foo[]”在ng-model中的含义是什么?

3

很抱歉,我想不出更合适的标题了。在HTML中,当我们希望为给定名称使用多个值时,我们使用 name="foo[]" 属性。

当数据被提交时,它变成了一个数组。我希望在angular中使用 ng-model 实现这种功能。

原因: 我有一个表单,其中有多个具有相同名称的字段,就像在简历中写我们的过去经历一样。

注意: 在说这是重复问题之前,请仔细阅读此内容。我看到过一些有价值的问题被标记为重复和无建设性的。


1
你试过像这里描述的那样尝试吗:https://dev59.com/T2Ei5IYBdhLWcg3wHJAR? - Mindastic
在Angular中,输入名称并不重要(名称主要用于验证目的)。如果创建CV表单,则应编写ng-repeat =“experience in experiences”,然后在其中编写类似以下内容的内容:<input type =“text” ng-model =“experience.from”/>$scope.experiences = [...]。如果您想添加更多经验,应向$scope.experiences数组添加另一个对象。 - karaxuna
要完成@karaxuna的回答,您只需要使用ng-repeat管理一个集合(带有一些“添加”和“删除”按钮)。 - Okazari
@Mindastic 我没找到。对于这个东西,我无法编造单词。-.-' 它有点接近我想要的,但除非这是唯一的方法,否则我不想成为一个编号的东西。 - echo_salik
我实际上没有使用ng-repeat。但这似乎是一个不错的想法。使用ng-repeat。 - echo_salik
1个回答

3
如果在您的Angular控制器中有以下代码:
$scope.foo = []; //your values in the array

您可以在视图中看到类似以下内容的东西:
<dd ng-repeat="item in foo">
    <input type="text" ng-model="foo[$index]" value="{{item}}" required/>
</dd>

这是你需要的吗?如果使用ng-model,表单提交时模型中就已经存在数据了,因此不需要名称。


这不是ng-repeat的问题。我没有使用ng-repeat。我是通过jQuery append和$compile添加它的。 - echo_salik
@echo_salik 这可能就是你无法实现的原因。你根本不应该在Angular中使用jQuery。 - Okazari
我其实是Angular的新手。这种方式创建数组似乎是最好的方法,是迄今为止最好的想法。谢谢大家。 - echo_salik
你试图创建一个Angular应用程序,但你还在用jQuery思考 :) https://dev59.com/YGUp5IYBdhLWcg3w3KXe - biancamihai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接