Angular 1.X中 ng-repeat配合拖拽排序插件引起的问题

如图 拖拽完 并不会正常排序。发现引起问题的原因是track by $index
但我的数据渲染需要嵌套ng-repeat

图片描述

但我的数据渲染用到嵌套ng-repeat,需要获取外部一层的$index

 
<tr ng-repeat="yAxis in tmpChartData.yAxis track by outIndex" ng-init="outIndex = $index">
    <th>{{outIndex+2}}</th>
    <th row-index="{{outIndex+1}}" tabindex="-1" editType="string">
        <input type="text" ng-model="selectedElement.module.yAxis[outIndex]">
    </th>
    <th class="editTh" ng-repeat="xAxis in tmpChartData.xAxis" edit-chart-th row-index="{{outIndex+1}}" tabindex="-1">
        <input type="number" ng-model="selectedElement.module.data[outIndex][$index]">
    </th>
</tr>

解决方法 ng-repeat 还有一种 (key,val) in Arr 的写法 所以只要改写成

<tr ng-repeat="(outKey,outVal) in tmpChartData.yAxis" ng-init="outIndex = $index">
    <th>{{outKey+2}}</th>
    <th row-index="{{outKey+1}}" tabindex="-1" editType="string">
        <input type="text" ng-model="selectedElement.module.yAxis[$index]">
    </th>
    <th class="editTh" ng-repeat="xAxis in tmpChartData.xAxis" edit-chart-th row-index="{{outIndex+1}}" tabindex="-1">
        <input type="number" ng-model="selectedElement.module.data[outKey][$index]">
    </th>
</tr>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值