angularjs 如何推送数组以添加动态表单字段
angularjs how to push array to add dynamic form fields
嗨,我是 Angularjs 的新手,请帮助我尝试创建一个动态表单字段,我的 html 是这样的
<div ng-repeat="cb in categories">
<div ng-repeat="choice in cb.choices">
<input type="text" ng-model="choice.req_goods">
<input type="text" ng-model="choice.qty">
<button ng-hide="$first" ng-click="removeChoice($parent.$index,$index)">-</button>
</div>
<button type="button" ng-click="addNewChoice($index)">+</button>
</div>
js
$scope.categories = [
{
"id":1,
"name":"Furniture & Fixture",
"choices":[
{
"req_goods":"table",
"qty":"4"
}]
},
{
"id":2,
"name":"Miscellaneous Property",
"choices":[
{
"req_goods":"others",
"qty":"6"
}]
}];
$scope.addNewChoice = function(id){
$scope.categories.choices[id].push({});
};
我想在用户单击添加按钮时动态添加选项。我尝试了上面的 addNewChoice()
函数,但它给出了错误 angular.min.js:114 TypeError: Cannot read property '0' of undefined"
请帮助我真的很紧张,因为我从昨天开始尝试这个。谢谢
改为
$scope.categories[id].choices
它将纠正您的错误
正如@Ranjith J 所说,您必须将代码更改为
$scope.categories[id].choices.push({})
当您将 $index
作为参数传递给 ng-click="addNewChoice($index)"
时,您指的是类别索引。因此,使用 id
参数访问正确的类别是有意义的。
有关工作示例,请参阅 this JSFiddle。
嗨,我是 Angularjs 的新手,请帮助我尝试创建一个动态表单字段,我的 html 是这样的
<div ng-repeat="cb in categories">
<div ng-repeat="choice in cb.choices">
<input type="text" ng-model="choice.req_goods">
<input type="text" ng-model="choice.qty">
<button ng-hide="$first" ng-click="removeChoice($parent.$index,$index)">-</button>
</div>
<button type="button" ng-click="addNewChoice($index)">+</button>
</div>
js
$scope.categories = [
{
"id":1,
"name":"Furniture & Fixture",
"choices":[
{
"req_goods":"table",
"qty":"4"
}]
},
{
"id":2,
"name":"Miscellaneous Property",
"choices":[
{
"req_goods":"others",
"qty":"6"
}]
}];
$scope.addNewChoice = function(id){
$scope.categories.choices[id].push({});
};
我想在用户单击添加按钮时动态添加选项。我尝试了上面的 addNewChoice()
函数,但它给出了错误 angular.min.js:114 TypeError: Cannot read property '0' of undefined"
请帮助我真的很紧张,因为我从昨天开始尝试这个。谢谢
改为
$scope.categories[id].choices
它将纠正您的错误
正如@Ranjith J 所说,您必须将代码更改为
$scope.categories[id].choices.push({})
当您将 $index
作为参数传递给 ng-click="addNewChoice($index)"
时,您指的是类别索引。因此,使用 id
参数访问正确的类别是有意义的。
有关工作示例,请参阅 this JSFiddle。