【发布时间】:2013-01-12 19:30:47
【问题描述】:
假设我有以下菜单结构:
<li class="dropdown"><img role="button" class="dropdown-toggle" data-toggle="dropdown" ng-src="{{avatarUrl}}" />
<ul class="dropdown-menu pull-right" role="menu">
<li ng-hide="user"><a ng-click="openLoginDialog()">Login</a></li>
<li ng-show="user"><a ng-click="logout()">Logout</a></li>
</ul>
</li>
我得到了正确的菜单,但是因为我使用的是 ng-show/ng-hide,所以当我在控制器中以编程方式更改 user = false; 时,会出现登录菜单。我明白为什么会发生这种情况,但我不确定在使用 Angular 时要采取什么方法来防止它。我尝试了一个 ng-repeat:
<li class="dropdown"><img role="button" class="dropdown-toggle" data-toggle="dropdown" ng-src="{{avatarUrl}}" />
<ul class="dropdown-menu pull-right" role="menu">
<li ng-repeat="action in actions"><a ng-click="{{action.command}}">{{action.name}}</li>
</ul>
</li>
与:
$scope.actions = [ {
name : "Login",
command : "openLoginDialog()"
}, {
name : "Logout",
command : "logout()"
} ];
但是使用该策略,我单击菜单项不会发生任何事情。我不确定对于我确定是行人用例的适当 Angular 方法。
【问题讨论】:
标签: javascript twitter-bootstrap angularjs