javascript - 访问 ng-repeat 的项目范围

标签 javascript angularjs angularjs-scope angularjs-ng-repeat

我有一个表格,其中的行使用各自的范围变量进行条件渲染:

<tr ng-repeat="row in data">
  <input type="text" data-ng-show="editMode" data-ng-model="row.smth"/>

因此输入仅在行范围变量 editMode 设置为 true 时显示,它工作得很好。

现在我想动态添加另一行:

$scope.data.push(my_new_row)

这也很好用。但是后来我想将该新行的范围变量 editMode 设置为某个值,但我没有主意。

我知道有一种未记录的方法可以使用 $$childHead 等,但这不是很优雅。

最佳答案

您可以使用 $index 跟踪项目。您还可以使用索引来决定显示/隐藏项目。您可以通过使用显示/隐藏逻辑实现一个函数并传入索引来做到这一点。例如:

<div ng-repeat="row in data track by $index">
    <input type="text" data-ng-show="GetEditMode($index)" ng-model="row.smth[$index]">
</div>

看看this .

关于javascript - 访问 ng-repeat 的项目范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30948054/

相关文章:

javascript - Angularjs 指令内容未链接到隔离范围

javascript - 将 $scope 放在 Cytoscape 点击事件中

angularjs - Angular 广播

javascript - 为什么我的范围不显示指令?

javascript - 我的轮播在水平方向上工作得很好,但如何让它在垂直方向上工作呢?

javascript - PHP - URL 重定向奇怪的行为

javascript - 使用 AngularJS 匹配一个或多个字母数字字符

javascript - 如何使用 angularjs (1.x) 动态设置 HTML 元素的 id 属性?

javascript - 保持原始对象不变

javascript - 类型错误 : Cannot read property '_locals' of undefined