Angularjs 使用$index和$parent在ng repeat和child ng repeat中动态创建ng模型。$index?
我有一些带有输入字段和复选框的表单控制器,当我单击“保存并添加另一项”按钮时,我一次复制(克隆)整个表单控制器。它可以做n次。我正在创建一个数组,单击按钮时按下表单元素Angularjs 使用$index和$parent在ng repeat和child ng repeat中动态创建ng模型。$index?,angularjs,dynamic,ionic-framework,ng-repeat,angular-ngmodel,Angularjs,Dynamic,Ionic Framework,Ng Repeat,Angular Ngmodel,我有一些带有输入字段和复选框的表单控制器,当我单击“保存并添加另一项”按钮时,我一次复制(克隆)整个表单控制器。它可以做n次。我正在创建一个数组,单击按钮时按下表单元素 <div class="row category-description-block" ng-repeat="values in categoryval.CategoryValuesArray track by $index"> <div class="col">
<div class="row category-description-block" ng-repeat="values in categoryval.CategoryValuesArray track by $index">
<div class="col">
<h3>Tell us about your jewelry</h3>
<div class="list">
<div class="form_group">
<label class="item item-input item-select">
<div class="input-label">
Type of Jewelry?
</div>
<span class="input-label"></span>
<input ng-model="categoryval.Luxary_Eyeware_Brand[$index]" type="text" placeholder="">
</label>
</div>
<!-- more details about jewelry starts -->
<ion-checkbox ng-model="categoryval.jewelrymoreDetailschecked[$index]" ng-change="jewelrymoreDetailsChange($index)">I have the jewelry details
<br/> (Diamond shape, clarity, color, etc.)</ion-checkbox>
<div ng-show="IsVisible[$index]">
<div>
<div class="row">
<div class="col">
<h4>Describe your diamonds</h4>
</div>
</div>
<div class="repeat-set card">
<!-- inner repeating div strats-->
<div class="repeat-div" ng-repeat="jewels in categoryval.moreJewelryDetailsArray track by $index">
<div class="row close-icon-bg">
<div class="col">
<a href="" ng-model="jewels.closeItem[$parent.Sindex][$index]" ng-click="removeItem($parent.$index,$index)" class="close-icon">remove</a>
</div>
</div>
<div class="row ">
<div class="col">
<div class="form_group">
<label class="item item-input item-stacked-label">
<span class="input-label">Quantity </span>
<input ng-model="jewels.quantity[$parent.$index][$index]" type="text" placeholder="Quantity">
</label>
</div>
</div>
</div>
</div>
<!-- inner repeating div Ends-->
<div class="form_group text-center">
<label class="item item-input item-stacked-label">
<button class="button button-small button-royal" ng-click="addJewelryDetails($index)">Add an additional item</button>
</label>
</div>
<div class="form_group">
<label class="item item-input item-stacked-label">
<span class="input-label">Description</span>
<textarea ng-model="categoryval.description[$index]" placeholder=""></textarea>
<p class="form-notes">The more information you provide, the better!</p>
</label>
</div>
</div>
</div>
</div>
<div class="row custom-button">
<div class="col-25">
<button class="button button-block button-balanced" ng-click="categoryContinue(categoryval)">Continue</button>
</div>
<div class="col">
<button class="button button-block button-balanced" ng-click="globalAppend()">Save and add another item</button>
</div>
</div>
</div>
但我有一个关于数量字段添加和删除的问题。例如,Parent1有3个数量字段,parent2有3个数量。每个父对象都有独立的数量。当我从父对象2中删除第二个数量时,它也将从父对象1中删除。我只想分别删除父项2和父项1,并添加quantiy字段。我完整的小提琴在这里。任何为我提供解决方案的人都要提前感谢不要将多维数组用于这种逻辑。 Javascript/Json是这个任务的完美类型 您应该有一个珠宝数组,其中包含一个项目列表:
[
{
items: [{name: "", description: ""}, {name: "", description: ""}]
},
{
items: [{name: "", description: ""}, {name: "", description: ""}]
}
]
以相同的方式删除项目:
$scope.removeItem = function(parentindex,index) {
$scope.jewelryArray[parentIndex].items.splice(index,1);
};
概念证明:
编辑:根据注释完成plunker
所以我想为父级和子级创建两个数组,对吗?你能举个例子吗fiddle@Ben10我添加了一个plunkerso每个表单字段来创建一个类似数组的珠宝类型作为数组,也作为数组创建数量,对吗?@Ben10是的,除了数量。数量应该是数组的大小或对象的属性。items:[{name:,description:,quantity:123},{name:,description:,quantity:51}]如何定义ng模型值?
$scope.removeItem = function(parentindex,index) {
$scope.jewelryArray[parentIndex].items.splice(index,1);
};