隐藏不属于范围变量的文本字符

时间:2014-01-20 19:45:58

标签: angularjs angularjs-scope

假设我有一段这样的代码:

<div id="myModule">
    <span data-ng-bind="var1"></span> | <span data-ng-bind="var2"></span>
</div>

由于我使用ng-bind而不是{{}}表示法,因此在控制器更新这些范围变量之前,屏幕上不会打印任何内容。并且控制器在使用$http的AJAX请求之后更新变量,有时需要一段时间。

这里的问题是,在几毫秒(有时是一秒或两秒)内,用户将在屏幕上看到一个孤独的|字符,这不是真正需要的。我尝试在各个地方使用ng-cloak,但都没有用。

在控制器更新所有范围变量之前,避免这样的事情出现在屏幕上的最佳解决方案是什么?优选地,不必连接控制器中的|

建议?

1 个答案:

答案 0 :(得分:0)

如何使用ng-show

The following will not show until var1 and var2 is set
<div ng-controller="MyCtrl" ng-show="var1 && var2">
  {{var1}} | {{var2}}
  <br/>
  <span ng-bind="var1"></span> | <span ng-bind="var1"></span>
</div>

这是演示。 http://plnkr.co/edit/qncwYKqeO2lcoMM4Y0QQ?p=preview

这种方法的问题是如果var1设置为null,整个块将消失。希望不是你的情况。