Angular - 根据下拉列表值显示或隐藏

标签 angular

我希望我的下拉列表根据所选值显示/隐藏 Div

我的 angular 项目中有一个下拉列表和几个 Div,如代码所示

<div class="col-md-12 no-padding">
                    <label>Reply Type</label>

                    <select class="form-control select2" formControlName="replytype" type="text" style="width: 100%;">
                     <option value="predefined">Predefined</option>
                     <option value="opentype">Open Type</option>
                    </select>           
              </div>

分区 1
                      <div class="col-md-12 no-padding">
                        <label>Application Name</label>
                        <input type="text" formControlName="applicationname" class="form-control" id="applicationname" placeholder="Application Name">
                        <span class="text-danger" *ngIf="form.controls['applicationname'].touched && form.controls['applicationname'].hasError('required')">
                            Application Name is required! </span>
                      </div> 

Div2
                <div class="col-md-12 no-padding">
                  <label>Main Menu</label>
                  <input type="text"class="form-control" id="mainmenu" placeholder="Message Text">
                </div>  

如果选定的值是预定义的,则 Div1 是可见的,而 Div2 是隐藏的,但如果它是 opentype,则 Div2 是可见的,而 Div1 是隐藏的。

默认情况下,Div1 值应该是 opentype 并且 Div2 应该是可见的

最佳答案

这里我用过 ngModel 在下拉列表中,这样您就可以获得从下拉列表中选择的值。

<div class="col-md-12 no-padding">
                    <label>Reply Type</label>

                    <select class="form-control select2" formControlName="replytype" type="text" style="width: 100%;" [(ngModel)]="optionValue">
                     <option value="predefined">Predefined</option>
                     <option value="opentype" selected>Open Type</option>
                    </select>           
</div>

在 Ts 文件中,您需要像这样声明一个名为 optionValue 的变量:
`optionValue`;

现在您可以使用 ngIf 用于显示/隐藏 Div。

分区 1
<ng-container *ngIf="optionValue == 'predefined'>
 <div class="col-md-12 no-padding">
                    <label>Application Name</label>
                    <input type="text" formControlName="applicationname" class="form-control" id="applicationname" placeholder="Application Name">
                    <span class="text-danger" *ngIf="form.controls['applicationname'].touched && form.controls['applicationname'].hasError('required')">
                        Application Name is required! </span>
                  </div> 
</ng-container>

Div2
<ng-container *ngIf="optionValue == 'opentype'"
<div class="col-md-12 no-padding">
              <label>Main Menu</label>
              <input type="text"class="form-control" id="mainmenu" placeholder="Message Text">
            </div> 
</ng-container>

关于Angular - 根据下拉列表值显示或隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239706/

相关文章:

angular2-jwt tokenNotExpired 无法正常工作

http - 从 Angular 2 http 获取错误消息

Angular 2 : Code organisation of web service/http requests

javascript - Angular Forms 不从 HTML 传递数据

angular - 如何使用 Ionic 2 框架创建一个登录页面,然后进入一个选项卡式 View ?

angular - 作为 Angular 4中的关键字?

javascript - 迭代对象数组以合并新对象

angular - 翻译服务在加载页面上不起作用

javascript - Angular 单元测试 : How to unit test . map()?

javascript - 如何处理 Angular 4 中的窗口滚动事件?