【问题标题】:ng-show not updating at the same timeng-show 不会同时更新
【发布时间】:2014-11-07 20:16:53
【问题描述】:

这是一个角度问题,带有 ng-show 和绑定。

我不想同时显示 2 个字段。一个是“显示”为真时显示,另一个是假时显示。

我有一个下拉列表,在选择某些选项时会更改此“显示”值。

但事情是这样的,有一个很短的时刻,两个人同时出现,即使他们不应该出现。这怎么可能,以及如何解决?

【问题讨论】:

  • 任何动画?

标签: angularjs binding ng-show


【解决方案1】:

我知道为什么它没有立即隐藏:默认过渡动画为 0.5 秒。您需要将其覆盖到 CSS 中,确切地说,它位于 ng-hide-add 和 ng-hide-remove 类中。

【讨论】:

  • 谢谢!我觉得很奇怪会有一个默认的转换集。
【解决方案2】:

这是您所要求的最简单的工作示例。它立即改变。如果不深入了解您的具体情况,很难说出导致延迟的原因。

var module = angular.module('test', []);

function PageCtrl($scope) {
  $scope.msg = 'Select hide/show example';
  $scope.showFirst = true;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="test" ng-controller="PageCtrl">
  <p>{{msg}}</p>
  
  <select ng-model="showFirst">
    <option ng-value="true">First</option>
    <option ng-value="false">Second</option>
  </select>
  
  <p ng-show="showFirst">This is paragraph one</p>
  
  <p ng-hide="showFirst">This is paragraph two</p>
</div>

【讨论】:

    【解决方案3】:

    您想要做的是使用 ng-hide 和 ng-show 代替。然后使用 $scope.value 将两者都设置为 true。最初 ng-hide 将被隐藏并且 ng-show 将被显示,然后当您将 $scope.value 切换为 false 时,它​​将反向翻转。基本上不使用两个 ng-show,但您使用 ng-hide 和 ng-show 的组合。

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 2015-08-08
      • 1970-01-01
      • 2015-03-29
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多