ng-show和ng-if滞后隐藏内容

时间:2015-02-18 17:47:24

标签: angularjs angularjs-scope angular-ng-if angularjs-ng-show

我根据searchQuery是否为空来显示和隐藏清除按钮。当用户开始在输入框中键入内容时,该按钮会立即显示。

但是,当用户单击清除按钮或删除所有输入时,在删除清除按钮之前会有明显的延迟。我也尝试过ng-show,并且收到了相同的结果。有什么想法可能存在这种滞后吗?

HTML

<button ng-if="search.cardsQuery.length" class="button-icon" ng-click="clearSearchQuery()">
    <i class="ion-android-close search-cards"></i>
</button>

CONTROLLER

$scope.clearSearchQuery = function() {
    $scope.search.cardsQuery = '';
};

3 个答案:

答案 0 :(得分:2)

检查您正在应用ng-if / ng-show的元素的css类。寻找transition effect。如果类有转换,则可能是延迟的原因:

.button-icon {
    transition: all .5s;
}

答案 1 :(得分:0)

这是开发人员中常见的问题。即使尝试使用ng-if也会导致相同的问题。我可以为您建议一个简单的解决方案。

打开特定html文件的css文件,然后在下面添加行。

**.ng-hide { display: none !important }**

希望,会有所帮助。

答案 2 :(得分:0)

$scope.$evalAsync();

为我工作:)