首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏推流属性

隐藏推流属性
EN

Stack Overflow用户
提问于 2017-08-08 16:17:45
回答 2查看 84关注 0票数 2

我已经在推送函数中添加了属性来隐藏标签并显示输入,但是当用户单击Save changes时,我想做相反的事情,即隐藏输入并显示标签。我正在使用ng-hide

代码语言:javascript
复制
  <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" />
代码语言:javascript
复制
$scope.addNew = function () {
  $scope.personalDetails.push({
    'Sname': "",
    'Settings': "",
    'lab' : true 
  });

  $scope.save = function () {
    $scope.personalDetails.lab = false;
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-08 16:22:42

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

代码语言:javascript
复制
  $scope.save = function () {
    for(var i=0;i<$scope.personalDetails.length;i++)
     $scope.personalDetails[i].lab = false;
  }
票数 0
EN

Stack Overflow用户

发布于 2017-08-08 16:28:11

如果save按钮位于ng-repeat之外,并且您想要更改所有数组元素的lab属性,则只需对personalDetails数组使用map,如下所示:

代码语言:javascript
复制
$scope.save = function() {
  $scope.personalDetails = $scope.personalDetails.map(function(detail) {
    detail.lab = false;
    return detail;
  });
}

这将更新所有personalDetails对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45562936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档