Angularjs 双重循环获取父级下标$index
时间: 2023-11-25 19:07:01 浏览: 60
在AngularJS中,可以通过嵌套`ng-repeat`指令来实现双重循环。对于获取父级下标 `$index`,可以使用`$parent.$index`来获取。下面是一个示例代码:
```
<div ng-repeat="item in items">
<div ng-repeat="subItem in item.subItems">
Parent index: {{$parent.$index}}, Child index: {{$index}}
</div>
</div>
```
在上面的示例中,第二个`ng-repeat`嵌套在第一个`ng-repeat`中。通过`$parent.$index`可以获取到外部循环的索引,通过`$index`可以获取到内部循环的索引。
相关问题
一个el-table怎么获取父级el-table的data数据的下标
在获取父级`el-table`的`data`数据的下标之前,您需要确定要获取哪个父级`el-table`的`data`数据下标。如果您已经确定了父级`el-table`的`data`下标,您可以使用以下方法来获取它:
1. 在子级`el-table`的`row-click`事件中,可以通过`$parent.$attrs.row`访问到父级`el-table`的当前行数据。您可以通过遍历父级`el-table`的`data`数组找到该行数据的下标。
```html
<template>
<div>
<el-table :data="parentTableData" @row-click="handleRowClick">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
<el-table :data="childTableData" :parent="$attrs.row">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
parentTableData: [
{ name: 'Lucy', age: 20 },
{ name: 'Jack', age: 30 }
],
childTableData: [
{ name: 'Tom', age: 25 },
{ name: 'Jerry', age: 35 }
]
}
},
methods: {
handleRowClick(row) {
const index = this.parentTableData.findIndex(item => item === row)
console.log('parent table data index:', index)
}
}
}
</script>
```
2. 如果您无法确定要获取哪个父级`el-table`的`data`下标,您可以在父级`el-table`中通过`$emit`方法触发一个自定义事件,并将当前行数据和当前`el-table`的引用作为参数。在子级`el-table`中监听该自定义事件,获取父级`el-table`的引用,从而获取父级`el-table`的`data`下标。
```html
<template>
<div>
<el-table :data="parentTableData" @row-click="handleRowClick">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
<el-table :data="childTableData" ref="childTable">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
parentTableData: [
{ name: 'Lucy', age: 20 },
{ name: 'Jack', age: 30 }
],
childTableData: [
{ name: 'Tom', age: 25 },
{ name: 'Jerry', age: 35 }
]
}
},
methods: {
handleRowClick(row) {
this.$emit('parent-row-click', row, this.$refs.childTable)
}
}
}
</script>
<template>
<div>
<el-table :data="childTableData" @parent-row-click="handleParentRowClick">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
childTableData: [
{ name: 'Tom', age: 25 },
{ name: 'Jerry', age: 35 }
]
}
},
methods: {
handleParentRowClick(row, parentTable) {
const index = parentTable.store.states.data.indexOf(row)
console.log('parent table data index:', index)
}
}
}
</script>
```
angularjs 获取[]的每一个下标
在 AngularJS 中,你可以使用`ng-repeat`指令来遍历数组并获取每个元素的下标。下面是一个示例:
```html
<div ng-app="myApp" ng-controller="myController">
<ul>
<li ng-repeat="(index, element) in myArray">
Index: {{ index }}, Value: {{ element }}
</li>
</ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script>
angular.module('myApp', [])
.controller('myController', function($scope) {
$scope.myArray = ['a', 'b', 'c', 'd'];
});
</script>
```
在上述代码中,我们使用`ng-repeat`指令来遍历`myArray`数组,并通过`(index, element)`语法将每个元素的下标赋值给`index`变量,将每个元素的值赋值给`element`变量。然后,我们在`li`元素中使用这些变量来显示下标和值。
这样,你就可以获取数组中每个元素的下标并进行相应的操作。