有这个div:
<div ng-show="messageAvailable" class="message">
<p ng-bind="message"></p>
</div>
messageAvailable来自$ http请求。因此,在角度js加载并且该请求发送响应并将值'false'分配给$ scope.messageAvailable之前,此div是可见的。我不希望它在一小段时间内可见。
我试过了:
<div ng-show="a=messageAvailable || false" class="message">
<p ng-bind="message"></p>
</div>
和(在控制器的最开头):
$scope.messageAvailable = false;
也没有帮助。
答案 0 :(得分:2)
您是否尝试过使用ng-if代替ng-show?
如果表达式为false,ng-if将不会呈现HTML节点。至少使用Angular 1.3或更高版本。
<div ng-if="messageAvailable" class="message">
<p ng-bind="message"></p>
</div>
一般来说,你应该考虑ng-if over ng-show / hide,特别是在ng-repeat内。它将大大减少摘要周期中活动手表的数量,并加快应用程序的运行。
答案 1 :(得分:0)
只需使用样式隐藏
<强> UPD 强>
<style>
.h {display: none;}
.v { display: block}
</style>
<div ng-show="messageAvailable" ng-class="{'v': messageAvailable,'h':!messageAvailable}"