如何在输入类型文本的angularjs中使用name =“skills []”?

时间:2016-04-16 07:27:12

标签: javascript angularjs

在php中我们通常使用name =“skills []”来从表单中获取数据作为数组但是如何在angularjs中执行此操作? PHP示例:

<input type="text" name="skills[]" />

我想在AngularJS中做同样的事情,但是语法错误。 我这样想: 的

我的代码:

<input type="text" name="skillname" required data-ng-model="c.skills[].skillname" class="small">
<input type="text" name="skillname" required data-ng-model="c.skills[].skiilname" class="small">

需要帮助。感谢。

2 个答案:

答案 0 :(得分:1)

试试这个:

您的控制器是:

app.controller('MainCtrl', function($scope) {
   $scope.skills = [];
  $scope.formData={
   skillname:[]
      };
  });

你的html是:

<div ng-repeat="skill in skills">
<input type="text"  required ng-model="formData.skillname[$index]" ng-init="formData.skillname[$index]=skill.skillname" class="small">
  </div>

如果没有ng-repeat,您可以使用以下代码:

<input type="text"  required ng-model="skillname[0]" ng-init="skillname[0]=skills[0].skillname" class="small">
<input type="text" required ng-model="skillname[1]" ng-init="skillname[1]=skills[1].skillname" class="small">

答案 1 :(得分:1)

在角度中,数据会对您的UI进行规则,而不是相反。您的控制器中应该有skills数组

app.controller('MainCtrl', function($scope) {
  $scope.skills = [
    {},
    {},
    {}
  ];
});

您将提供给ng-repeat或其他内容。

<div ng-repeat='skill in skills'>
  <input ng-model='skill.name' />
</div>

这样,在页面上添加新的文本字段就像将新元素推送到数组$scope.skills.push({})一样简单。无需创建DOM元素或任何东西。这是有角度的方式。

演示:http://plnkr.co/edit/Uqldnst3gnF07SJGV6Bn?p=preview