条件角可以同时显示

时间:2014-11-17 13:49:46

标签: angularjs

<div ng-switch="signedIn()">
  <a ng-switch-when="false" >Text1</a>
  <a ng-href="#/post_form" ng-switch-when="true">Text2</a>
</div>

编辑//

当$ scope.signedIn被更改时,Text1和Text2都可见。 所以它按预期工作,直到您登录/注销 - 然后一秒钟Text1和Text2都可见。

编辑//

建议使用ng-if ng-hide / show - 问题的所有答案仍然存在。

我知道ng-if是“DOM友好”。

4 个答案:

答案 0 :(得分:2)

我理解开关的简单性和可读性,以及它提供的嵌套,但我建议使用更基本的东西。

你当然可以使用rhasarub在答案中建议的ng-show / ng-hide方法,但由于你似乎在做一些有关登录的事情,我建议使用ng-if。不同之处在于,当条件不满足时,DOM根本不会被渲染,因此不会被好奇/知识渊博的用户检查。

<a ng-if="!signedIn()" >Text1</a>
<a ng-href="#/post_form" ng-if="signedIn()">Text2</a>

答案 1 :(得分:1)

问题是由于对border-bottom属性应用转换,删除它解决了问题引起的。

答案 2 :(得分:0)

您不需要ng-switch来获得简单的布尔值。您可以改为使用ng-show和ng-hide:

<a ng-hide="signedIn()" >Text1</a>
<a ng-href="#/post_form" ng-show="signedIn()">Text2</a>

答案 3 :(得分:0)

<div ng-switch-on="signedIn()">
  <a ng-switch-when="false">Text1</a>
  <a ng-href="#/post_form" ng-switch-when="true">Text2</a>
</div>