Javascript 隐藏推送的属性

Javascript 隐藏推送的属性,javascript,jquery,angularjs,arrays,object,Javascript,Jquery,Angularjs,Arrays,Object,我在push函数中添加了属性来隐藏标签并显示输入,但当用户单击Save changes时,我想做相反的操作,即隐藏输入并显示标签。我正在使用ng隐藏 <tr ng-repeat="personalDetail in personalDetails"> <td> <label ng-hide="personalDetail.lab" for="settings"> {{personalDetail.Sname}}</label&

我在push函数中添加了属性来隐藏标签并显示输入,但当用户单击Save changes时,我想做相反的操作,即隐藏输入并显示标签。我正在使用
ng隐藏

  <tr ng-repeat="personalDetail in personalDetails">
    <td>
        <label ng-hide="personalDetail.lab" for="settings"> {{personalDetail.Sname}}</label>
        <input ng-show="personalDetail.lab" type="text" ng-model="personalDetail.Sname" />
    </td>
    <td>
        <label ng-hide="personalDetail.lab" data-val="{{personalDetail.Settings}}" for="desc">{{personalDetail.Settings}}</label>
        <input style="display:none" data-val="{{personalDetail.Settings}}" ng-model="personalDetail.Settings" type="text" value="{{personalDetail.Settings}}" />
        <input ng-show="personalDetail.lab" ng-model="personalDetail.Settings" type="text" value="{{personalDetail.Settings}}" />
    </td>
    <input type="button" class="btn btn-success pull-right btn-space" ng-click="save()" value="Save Changes" />

由于
$scope.personalDetails
是一个数组,因此必须使用索引访问每个属性。因此,循环遍历数组并更改lab属性

  $scope.save = function () {
    for(var i=0;i<$scope.personalDetails.length;i++)
     $scope.personalDetails[i].lab = false;
  }
$scope.save=函数(){

对于(var i=0;i如果
save
按钮在
ng repeat
之外,并且您想要更改所有数组元素的
lab
属性,您只需要在
personalDetails
数组上使用
map
,如下所示:

$scope.save = function() {
  $scope.personalDetails = $scope.personalDetails.map(function(detail) {
    detail.lab = false;
    return detail;
  });
}

这将更新所有
personalDetails
对象。

请花点时间正确设置问题格式。这是一个无法阅读的混乱。保存的输入是否在ng内重复?否,其外部我只是在此处显示它实验室为真我想在用户单击保存更改时将其设置为假,以隐藏输入并显示Elabel@Aftabkhan是否要更改所有详细信息对象的
lab
属性?