我有一个表,其中包含使用各自范围变量进行条件渲染的行:
<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>
看看这个。
您可以在行数据中设置编辑模式。
<input type="text" data-ng-show="row.editMode" data-ng-model="row.smth"/>
或
你可以试试这个:
<input type="text" data-ng-show="this.editMode" ng-change="toggle(this);" data-ng-model="row.smth"/>
在控制器中,您可以按以下方式访问编辑模式:
$scope.toggle = function(context){
console.log(a);
context.editMode=!context.editMode;
}