首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅对可见控件应用`$ visible‘

仅对可见控件应用`$ visible‘
EN

Stack Overflow用户
提问于 2016-09-14 20:27:26
回答 2查看 22关注 0票数 0

我有一个简单的表单,它根据属性data-ng-hide="objective.editMode"显示控件:

代码语言:javascript
复制
<form class="form-horizontal" role="form" name="adduserform">                        
    <div class="form-group">                           
       <label for="title6" class="col-sm-5 control-label">Progress</label>
       <div class="col-sm-6">

          <input data-ng-hide="objective.editMode" type="number" min="0" max="100" 
               data-ng-model="newTask.Progress" class="form-control" required  />
          <input data-ng-show="objective.editMode" type="number" min="0" max="100" 
               data-ng-model="objective.Progress" class="form-control" required  />

       </div>
    </div>    

    <div class="form-group">
       <div class="col-sm-offset-2 col-sm-10">
          <span data-ng-hide="editMode">
             <input data-ng-hide="objective.editMode" type="submit" value="Add" 
                    ng-disabled="adduserform.$invalid" data-ng-click="add()"/>
             <input data-ng-show="objective.editMode" type="submit" value="Save" 
                    ng-disabled="adduserform.$invalid" data-ng-click="Save()" />    
          </span>                 
       </div>
    </div>
</form>

我的问题是,adduserform.$invalid 可以检查窗体上显示的控件吗?,因为adduserform.$invalid要求填充所有控件,但并不是所有控件都显示在窗体上,因为控件的外观取决于objective.editMode

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-14 20:31:20

您可以使用ng-if而不是ng-hide

代码语言:javascript
复制
<input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />
票数 1
EN

Stack Overflow用户

发布于 2016-09-14 20:40:18

隐藏在data-ng-hide / data-ng-show中的元素仍然在DOM树上,因此被验证。相反,使用data-ng-if,它将从DOM中删除元素:

代码语言:javascript
复制
<form class="form-horizontal" role="form" name="adduserform">                        
<div class="form-group">                           
   <label for="title6" class="col-sm-5 control-label">Progress</label>
   <div class="col-sm-6">

      <input data-ng-if="!objective.editMode" type="number" min="0" max="100" 
           data-ng-model="newTask.Progress" class="form-control" required  />
      <input data-ng-if="objective.editMode" type="number" min="0" max="100" 
           data-ng-model="objective.Progress" class="form-control" required  />

   </div>
</div>    

<div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
      <span data-ng-if="!editMode">
         <input data-ng-if="!objective.editMode" type="submit" value="Add" 
                ng-disabled="adduserform.$invalid" data-ng-click="add()"/>
         <input data-ng-if="objective.editMode" type="submit" value="Save" 
                ng-disabled="adduserform.$invalid" data-ng-click="Save()" />    
      </span>                 
   </div>
</div>

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

https://stackoverflow.com/questions/39499115

复制
相关文章

相似问题

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