首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-cloak和ng-show在屏幕上闪烁隐藏的元素

ng-cloak和ng-show在屏幕上闪烁隐藏的元素
EN

Stack Overflow用户
提问于 2012-11-18 00:13:24
回答 4查看 23.6K关注 0票数 18

我有一个div元素,我只希望在项目列表为空时显示该元素。因此,我输入了以下内容(在haml中):

代码语言:javascript
复制
  #no-items.ng-cloak{ :ng_show => "items.length <= 0", :ng_cloak => true }

然而,即使在我完成了这些操作之后,元素仍然在屏幕上闪烁。然后我看到了Angularjs - ng-cloak/ng-show elements blink,但即使在我的CSS中添加了以下内容,仍然会出现闪烁。

代码语言:javascript
复制
[ng\:cloak], [ng-cloak], .ng-cloak {
  display: none !important;
}

你知道我做错了什么吗?

EN

回答 4

Stack Overflow用户

发布于 2014-04-07 00:06:16

您可以将ng-hide放在类中,而不会影响JS在加载后的工作方式。但是,将它放在那里很有用,以便CSS在等待JS加载时将其考虑在内。

代码语言:javascript
复制
<div data-ng-controller="RoomsController">
<div ng-cloak class="ng-cloak ng-hide" data-ng-if="visible" >
    Some text
</div>        
</div>
票数 34
EN

Stack Overflow用户

发布于 2013-01-12 05:54:12

确保在页面的开头加载了上面所示的ng-cloak CSS。

这应该是您需要做的全部工作:

代码语言:javascript
复制
<div ng-hide="items.length" ng-cloak>no items</div>

示例fiddle

票数 10
EN

Stack Overflow用户

发布于 2016-10-20 17:55:40

所有的解决方案对我都不起作用。我找到的唯一解决方案是:

在每个控制器中,添加:

代码语言:javascript
复制
$scope.$on('$viewContentLoaded', function () {
            $scope.completed = true;
});            

在每个视图的html中,将ng-if="completed“添加到最上面的元素。例如:

代码语言:javascript
复制
<div ng-if="completed">

注意:该问题仅限于firefox路由器和ui-。在这里,ng-cloak被忽略,并且没有css解决方案。唯一对我有效的解决方案是我上面给出的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13432311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档