在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">
需要帮助。感谢。
答案 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元素或任何东西。这是有角度的方式。