javascript - 尝试设置 3 个不同的 ngIf 以不同的点击次数打开

标签 javascript html angular typescript

好吧,我想做的是,当用户单击开始计时器按钮时,它会打开输入,以便您可以设置计时器,并且开始计时器按钮消失,然后当用户单击输入时,输入框将关闭,取消计时器按钮将在计时器完成或用户单击取消时显示,并且启动计时器按钮重新出现此代码位于 ngFor 循环内。

toggleTimer: any;
toggleTimerActive: any;
toggleTimerCancel: any;
      <div *ngFor="let time of times; let i = index" attr.data="{{time.Direction}}">
        <div class="card">
          <div class="card-body" style="text-align: left;">
            <div class="row">
              <strong><span class="col-sm">Due in: {{time.Duein}} mins</span></strong>
              <span class="col-sm">Direction {{time.Direction}}</span>
              <span class="col-sm">Destination: {{time.Destination}}</span>
            </div>
            <div class="row">
              <span class="col-sm">Expected Arrival {{time.Exparrival}}</span>
              <span class="col-sm">Train type {{time.Traintype}}</span>
            </div>
            <div class="row">
              <span class="col-sm">Last Location: {{time.Lastlocation}}</span>
            </div>
            <hr />
            /* this is where I am trying to make it happen*/
            <i *ngIf="toggleTimer !== i" (click)="toggleTimer === i ? toggleTimer = null : toggleTimer = i; toggleTimerActive !== i ? toggleTimerActive = null : toggleTimerActive !== i; toggleTimerInput !== i ? toggleTimerInput = null : toggleTimerInput = true;"
              class="far fa-clock"> Set timer</i>
              <div class="timer" *ngIf="toggleTimerActive === i">
                  <i class="far fa-clock" (click)="endsTimer()"> Stop Timer</i>
                  {{remaining | time}}
              </div>
            <div class="md-form" *ngIf="toggleTimerInput === i">
              <input mdbInput type="tel" [(ngModel)]="settime" (keydown.enter)="startTimer(time.Duein); toggleTimer = i; toggleTimerInput = false;"
                class="form-control" placeholder="Set timer (In minutes)" />
            </div>
          </div>
        </div>
      </div>

当我点击开始计时器按钮时,它消失了,但输入不显示

最佳答案

似乎这个条件总是失败 toggleTimerInput !== i ? toggleTimerInput = null : toggleTimerInput = true;最初,toggleTimerInput 未定义且不等于 0(假设在第一次迭代时将 0 分配给 i),因此会分配 null,并且 null 永远不等于 i,因此它始终为 null。

关于javascript - 尝试设置 3 个不同的 ngIf 以不同的点击次数打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57726728/

相关文章:

javascript - JQuery 验证插件帮助

php - 表单提交在 Firefox 中不起作用,在 chrome 中工作正常

Angular:将 base-href 与 scss url 结合使用

javascript - 如何使用 CSS 将动画应用于垂直居中的元素

javascript - 如果满足 *ngIf 就触发函数? Angular 2

javascript - 如何在 sockjs-STOMP 上禁用调试消息

javascript - 获取页面中的元素数

javascript - 随机非重复数组JS(不用.includes()求解)

javascript - 需要在选中复选框后立即取消选中该复选框。 Angular 4

angular - Angular2 中的内存泄漏