Javascript 使用ng repeat添加/删除DOM元素<;输入>;
我在Angularjs中有一个问题,我尝试使用ng repeat为用户添加/删除DOM元素输入和按钮,以便他们可以使用按钮添加或删除输入元素 事实上,我的代码没有这个词 这是html代码:Javascript 使用ng repeat添加/删除DOM元素<;输入>;,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我在Angularjs中有一个问题,我尝试使用ng repeat为用户添加/删除DOM元素输入和按钮,以便他们可以使用按钮添加或删除输入元素 事实上,我的代码没有这个词 这是html代码: <a class="btn pull-right" ng-click="addInputRow()">add input</a> <p class="" ng-repeat="item in controlNumberOfInputRows"> <span&
<a class="btn pull-right" ng-click="addInputRow()">add input</a>
<p class="" ng-repeat="item in controlNumberOfInputRows">
<span>NO.{{$index+1}}</span>
name:<input name="name" type="text" class="span2" />
phone:<input name="phone" type="text" class="span2" />
ID:<input name="ID" type="text" class="span3" />
<a class="class" ng-click="deleteThis($index)">X</a>
</p>
但是当用户删除项目时,此代码有一个bug,仅限于Angulayjs
删除最后一个
如果我设置:
$scope.controlNumberOfInputRows = [0,1,2,3,4];
$scope.controlNumberOfInputRows = [0,1,2,3,4];
它在[0]~[4]中工作得很好,用户可以通过索引删除项目
,但不在[5]~[X](删除最后一个)
为什么?
附言
如果我设置:
$scope.controlNumberOfInputRows = [0,1,2,3,4];
它在[0]~[4]中工作得很好,用户可以通过索引删除项目
name[Wells] Phone[123] ID[1] X
name[Wells] Phone[123] ID[2] X
name[Wells] Phone[123] ID[3] X << delete this
name[Wells] Phone[123] ID[4] X
name[Wells] Phone[123] ID[5] X
如果我们使用addinput
name[Wells] Phone[123] ID[1] X
name[Wells] Phone[123] ID[2] X
name[Wells] Phone[123] ID[3] X
name[Wells] Phone[123] ID[4] X
name[Wells] Phone[123] ID[5] X
name[Wells] Phone[123] ID[6] X
name[Wells] Phone[123] ID[7] X
name[Wells] Phone[123] ID[8] X << delete this
name[Wells] Phone[123] ID[9] X
我想我通过杂技解决了我的问题:
var index = 0;
$scope.controlNumberOfInputRows = [];
$scope.addInputRow = function(){
index ++;
$scope.controlNumberOfInputRows.push(index);
}
这确实很有效,但为什么呢?我不知道 尝试以下操作:将执行删除操作:
<a class="btn pull-right" ng-click="addInputRow()">add input</a>
<p class="" ng-repeat="(key,value) in controlNumberOfInputRows">
<span>NO.{{value+1}}</span>
name:<input name="name" type="text" class="span2" />
phone:<input name="phone" type="text" class="span2" />
ID:<input name="ID" type="text" class="span3" />
<a class="class" ng-click="deleteThis($index)">X</a>
</p>
我想我用杂技解决了我的问题
$scope.addInputRow = function(){
index ++;
$scope.controlNumberOfInputRows.push(index);
}
这个词很好,但为什么呢?我不知道…我的朋友,你的意思是在这些输入元素中键入一些不同的数据并使用[X]吗?它只是删除了最后一个。您是否使用了“添加输入”?您能否帮助我们重新创建问题/提供使用上面的演示重新创建问题的步骤确定我的朋友,很抱歉没有清除我的朋友,使用(键、值)可以删除,但只有最后一个像我一样,并且此案例不需要代码$compile,ng repeat将执行此操作
<a class="btn pull-right" ng-click="addInputRow()">add input</a>
<p class="" ng-repeat="(key,value) in controlNumberOfInputRows">
<span>NO.{{value+1}}</span>
name:<input name="name" type="text" class="span2" />
phone:<input name="phone" type="text" class="span2" />
ID:<input name="ID" type="text" class="span3" />
<a class="class" ng-click="deleteThis($index)">X</a>
</p>
$scope.addInputRow = function(){
index ++;
$scope.controlNumberOfInputRows.push(index);
}