【问题标题】:ng-switch not working even isactive is falseng-switch 不工作,即使 isactive 为假
【发布时间】:2019-05-03 13:26:51
【问题描述】:

ng-switch 中有两个按钮,如果 isActive 为 false,任何一个都应该显示,但同时显示两个按钮。我在做什么错?

<div ng-switch="user.IsActive">
  <div ng-switch-when="false">
  <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
    </div>


启用

【问题讨论】:

    标签: javascript angularjs ng-switch


    【解决方案1】:

    您不想在这里使用 ngSwitch,而是使用 ngIf:

    <div *ngIf="user.IsActive">
      <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
    </div>
    

    当 user.IsActive 变量返回 true 时,按钮将显示。当它返回 false 时,按钮将被隐藏。

    另外,您的 ngSwitch 语法不正确。正确的语法遵循以下模式:

    <div [ngSwitch]="variableCondition">
        <component1 *ngSwitchCase="variableCondition1"></component1>
        <component2 *ngSwitchCase="variableCondition2"></component2>
    </div>
    

    【讨论】:

      【解决方案2】:

      Angular ng-switch 会将您的 false 评估为变量而不是 boolean value 所以将您的开关情况更改为 ng-switch-when="'false'"

      示例

      <div ng-switch="user.IsActive">
                                                          <div ng-switch-when="'false'">
                                                              <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
                                                          </div>
                                                          <div ng-switch-default>                                                                
                                                              <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Activate</button>
                                                          </div>
                                                  </div>
      

      【讨论】:

        【解决方案3】:

        我建议将 ng-if 用于布尔值。

        <div>
          <div ng-if="user.IsActive">
            <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
          </div>
          <div ng-if="!user.IsActive">
            <button type="button" (click)="activateDeactivateUser(user.UserId, user.IsActive)" class="btn btn-primary active">Activate</button>
          </div>
        </div>
        

        但这是 ng-switch 的示例

        <div ng-switch="user.IsActive">
          <div ng-switch-when="true'">
            <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
          </div>
          <div ng-switch-when="false">
            <button type="button" (click)="activateDeactivateUser(user.UserId, user.IsActive)" class="btn btn-primary active">Activate</button>
          </div>
        </div> 
        

        【讨论】:

        • 你能发布 JSON 吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        • 2017-03-23
        • 2016-01-20
        • 1970-01-01
        • 2015-03-20
        相关资源
        最近更新 更多