这是一个有角度的问题,带有ng-show和bindings。
我有两个我不想同时显示的字段。一个是显示“show”是真的,另一个是当它是假的时候。
我有一个下拉列表,在选择某个选项时会更改此“显示”值。
但是事情就是这样,两个人在同一时间出现的时刻非常短暂,即使他们不应该。怎么可能,以及如何解决这个问题?
答案 0 :(得分:5)
我弄清楚为什么它不会立即隐藏:有一个0.5秒的默认过渡动画。您需要将其覆盖到CSS中,确切地说,它在类ng-hide-add和ng-hide-remove上。
答案 1 :(得分:1)
以下是您所询问的最简单的工作示例。它立即改变。如果没有更深入了解您的具体情况,很难说会导致延迟。
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>
答案 2 :(得分:0)
您要做的是使用ng-hide代替ng-show。然后对两者使用$ scope.value设置为true。最初将隐藏ng-hide并显示ng-show,然后当你为$ scope.value切换为false时,它将反向翻转。基本上不使用两个ng-shows,但你同时使用ng-hide和ng-show的组合。