You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为ng-repeat渲染的嵌套数组列表项绑定单行实例关闭操作

解决方案

你当前代码的问题在于:按钮上写的ng-click="close(d)"里的d是内层<td ng-repeat="d in datas">的局部变量,在按钮所在的独立<td>作用域内无法获取到有效值,调整传参逻辑即可实现需求,以下是两种常用实现方式:

方式1:直接传递实例ID(推荐)

你返回的嵌套数组中,每个子数组的第一个元素就是实例唯一ID,直接把外层循环的datas数组的第一个元素传给close方法即可:

<tbody>
  <tr ng-repeat="datas in data" >
   <td ng-repeat="d in datas">
    {{d}}
   </td>
   <td>
    <button class="btn btn-primary" ng-click="close(datas[0])">Close</button>
   </td>
  </tr>
</tbody>

对应JS逻辑示例:

$scope.close = function(instanceId) {
  // 直接用拿到的instanceId调用实例关闭接口即可
}

方式2:传递行索引同步渲染

如果关闭成功后需要删除页面上的对应行,可以同时传递外层循环的行索引$index:
模板修改:

<button class="btn btn-primary" ng-click="close(datas[0], $index)">Close</button>

对应JS逻辑示例:

$scope.close = function(instanceId, index) {
  // 调用关闭接口成功后,删除原数组对应下标的元素,页面会自动同步渲染
  $scope.data.splice(index, 1);
}

内容的提问来源于stack exchange,提问作者Amara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:06:04