Javascript 访问ng repeat';s项目范围
我有一个表,其中的行使用各自的范围变量进行条件呈现:Javascript 访问ng repeat';s项目范围,javascript,angularjs,angularjs-scope,angularjs-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"/> 这也很有效。但是我想将新行的scope变量editMode设置为某个值,这样我就没有主意了 我知道有一种使用$$childHead等的未记录方式,但这不是很优雅。您可以在行数据中设置编辑模式 <input typ
<tr ng-repeat="row in data">
<input type="text" data-ng-show="editMode" data-ng-model="row.smth"/>
这也很有效。但是我想将新行的scope变量editMode
设置为某个值,这样我就没有主意了
我知道有一种使用$$childHead等的未记录方式,但这不是很优雅。您可以在行数据中设置编辑模式
<input type="text" data-ng-show="row.editMode" data-ng-model="row.smth"/>
您可以使用$index跟踪项目。您还可以使用索引来决定显示/隐藏项目。您可以通过使用show/hide逻辑实现一个函数并传入索引来实现这一点。例如:
<div ng-repeat="row in data track by $index">
<input type="text" data-ng-show="GetEditMode($index)" ng-model="row.smth[$index]">
</div>
看看。我的行数据现在只是服务器端的一个普通数据对象,所以我必须在发送回服务器之前引入一些过滤,这似乎不是一个很好的方法。。。我确信一定有办法访问行范围事实上我有唯一的ID作为行的一部分,所以不需要
track by
wans,只需将editMode转换为函数,谢谢提示!
<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;
}
<div ng-repeat="row in data track by $index">
<input type="text" data-ng-show="GetEditMode($index)" ng-model="row.smth[$index]">
</div>