【问题标题】:Show/Hide div element using drop down menu in Angular?使用Angular中的下拉菜单显示/隐藏div元素?
【发布时间】:2020-05-19 08:16:47
【问题描述】:

我是 Angular 的新手。我想使用下拉(选择)菜单显示/隐藏文件 div。如果我选​​择“自定义”,它将显示文件元素。但我选择“无”,它会隐藏和删除文件(如果有)元素。我无法显示隐藏文件元素。请提供一些反馈?

<div class="form-group">
  <label for="credentials">Credentials</label><br />
  <select name="select_file" class="form-control" required ng-model="myVar">
    <option value="">Choose a option</option>
    <option value="false">none</option>
    <option value="true">custom</option>
  </select>
  <div *ngIf="myVar">
    <input
      type="file"
      class="form-control"
      id="credentials"
      accept=".json"
      [(ngModel)]="userdata.credentials"
      (change)="handleFileInput($event.target.files)"
      name="credentials"
    />
  </div>
</div>

【问题讨论】:

    标签: javascript html css angular


    【解决方案1】:

    首先它不是 Angular JS,它看起来像 Angular 2+。 关于您的问题:

    [value]="..." only supports string values
    [ngValue]="..." supports any type, including boolean
    

    例如

    <h1>My Application</h1>
    <select [(ngModel)]="myVar">
      <option [ngValue]="''">Choose a option</option>
      <option [ngValue]="false">none</option>
      <option [ngValue]="true">custom</option>
    </select>
    

    也尝试使用Reactive Forms 代替 ngModel

    【讨论】:

      【解决方案2】:
          <div class="form-group">
        <label for="credentials">Credentials</label><br/>
        <select name="select_file" class="form-control" required [(ngModel)]="myVar">
          <option value="">Choose a option</option>
          <option value="false">none</option>
          <option value="true">custom</option>
      </select>
      <div *ngIf="myVar === true">
          <input 
          type="file" 
          class="form-control" 
          id="credentials" 
          accept=".json"
          [(ngModel)]="userdata.credentials"
          (change)="handleFileInput($event.target.files)"
          name="credentials" 
          >
        </div>
      

      您需要使用 ngModel 。 在 Ts 文件中,只需定义 myVar 变量。请尝试此代码。

      【讨论】:

      • 你的答案是正确的。但是 value 被 [ngValue] 替换,因为它支持任何类型,包括布尔值。
      • @YatishBathla 你是对的,值总是一个字符串。但在我们的情况下,我想这不会引起任何问题。因为在 div 我们有 if 条件 myVar === true 。所以它也不允许空字符串。只有值 true 才会被允许
      • 我已经尝试过使用值,但是当我单击自定义选项时,文件 div 不可见。
      • 哦,好吧,对不起我的错误。我忘了做报价单。试试这个 *ngIf=" myVar === 'true' " 。
      猜你喜欢
      • 2017-12-16
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 2013-01-23
      • 2014-09-15
      • 1970-01-01
      相关资源
      最近更新 更多