使用ng-click过滤新闻和事件

时间:2015-09-26 11:26:56

标签: javascript angularjs

我在两个单独的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">

但是,我无法让过滤器正常工作,在我的过滤器导航中点击新闻或事件时没有任何反应。我在这里做错了什么?

1 个答案:

答案 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/

相关问题