<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友好”。
答案 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>