Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问ng repeat';s项目范围_Javascript_Angularjs_Angularjs Scope_Angularjs Ng Repeat - Fatal编程技术网

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>