我在两个单独的div中有一个新闻和事件列表,然后我有一个filternavigation来勾选你是否只想看新闻或事件。 所以在我的控制器中我设置了$ scope.showNews = true和$ scope.showEvents = true,因为我想为初学者显示两者。在我的导航中,我设置了这个:
<li><a ng-click="showNews==true && showEvents == false" title="News" href="#">News</a></li>
<li><a ng-click="showEvents==true && showNews == false" title="Events" href="#">Events</a></li>
然后在包含div的新闻中我有这个:
<section ng-show="showNews == true" class="ribbon grid-layout-section clearfix 1-cell ng-cloak" >
以及我在包含div的事件中
<section ng-show="showEvents == true" class="ribbon grid-layout-section clearfix 1-cell ng-cloak">
但是,我无法让过滤器正常工作,在我的过滤器导航中点击新闻或事件时没有任何反应。我在这里做错了什么?
答案 0 :(得分:2)
你几乎得到了它,你在ng-click
中做了一个有条件的事情,所以他们实际上什么都不做。
<li><a ng-click="showNews = true; showEvents = false" title="News" href="#">News</a></li>
<li><a ng-click="showEvents = true; showNews = false" title="Events" href="#">Events</a></li>
这实际上是设置变量而不是比较它们,以实际监控ng-click
中发生的事情,更好的是向控制器的范围添加一个功能并测试该功能。但这会奏效!
考虑到你一次只能展示一个div
,你也可以做一些更清洁的方法:
<li><a ng-click="show = 'news'" title="News" href="#">News</a></li>
<li><a ng-click="show = 'events'" title="Events" href="#">Events</a></li>
<div ng-show="show === 'news'">News</div>
<div ng-show="show === 'events'">Events</div>
编辑:控制器方法:https://jsfiddle.net/yttrms75/