AngularJS:$index如何在ng-repeat中工作
angularjs: how does $index work in ng-repeat ?
请考虑下表:
<tbody data-ng-repeat="job in jobs">
<tr>
<td>{{job.fileName}}</td>
<td>
<button class="btn" ng-click="deleteJob($index);"><i class="icon-delete"></i> delete</button>
</td>
</tr>
</tbody>
如果我删除作业,行 ID 将传递给函数,它工作正常。
scope.deleteJob = function (id) {
scope.jobs.splice(id, 1);
}
但是,如果我将deleteJob($index)
更改为deleteJob({{$index}})
,则索引仍会传递给函数,但是如果我删除第 1 行,则第 2 行的索引仍然是 2,并且不会更新。
怎么来了?这两种方法有什么区别?
这是因为当你使用$index
时它是一个变量,但当你使用{{$index}}
值而不是变量时。
如果你检查 DOM,你会看到在第一个case($index)
你仍然在 DOM 中看到$index
,但是当你使用 {{$index}}
时,你会在 DOM 中看到 0,1,2...。
如果你使用{{index}}
,当数组被改变时,你的DOM仍然有deleteJob(0),deleteJob(2)
...依此类推 - 缺少已删除的索引。
如果你使用$index
你的DOM将有$index
,这是一个表示实际当前索引的变量。
>我认为{{$index}}
是错误的,必须$index
重复元素的迭代器偏移量的有效用法。
$index
是迭代器,删除后应分别更新其中一个项目。
当我们编写{{$index}}
意味着 - 显示存储在迭代器中的当前值。
像其他语言一样,例如Java,如果我们在循环列表中运行(如ng-repeat
),我们只能使用迭代器来删除Item以防止索引问题
演示小提琴
相关文章:
- ng repeat在ng repeat-过滤器不工作
- 将我的列表 vom ng-repeat 更改为收集重复 ng-click 后,无法正常工作
- 使用ng-repeat时,弹性滑块无法正常工作
- 如何让ng repeat在指令模板中工作
- 为什么Ng Repeat不工作,如果按钮从不同的形式调用
- AngularJS “ng-repeat |滤波器:..“没有像我预期的那样工作(不显示任何数据)
- Angularjs ng-repeat过滤器在v1.0.1中工作,而不是v1.3.7
- Ng-Repeat只工作一次
- AngularJS:$index如何在ng-repeat中工作
- javascript [],[[]] 和 [{}] 在 angularJS 中与 ng-repeat 一起使用时的工作差
- AngularJS ng-repeat,两个单选按钮无法正常工作
- Angular JS - ng-repeat无法正常工作
- 设置变量时,Angular Js ng init在ng repeat内部无法正常工作
- 当ng repeat完成一个事件时触发它'’s的工作
- Jquery插件在AngularJS ng repeat中不工作
- 为什么ng repeat不在angular js中工作(使用指令)
- AngularJS ng repeat-jquery Datepicker在ng repeat内不工作
- Ng-repeat在HTML中不能正常工作,在angular js中编译
- Angularjs:如何在ng repeat工作时显示增量计数器(进度消息)
- 我必须marshal $apply才能让我的ng-repeat工作,有更好的方法吗?