elasticui - 仅在第一次单击时触发ng-click触发排序

时间:2014-07-09 21:08:47

标签: angularjs elasticsearch

我尝试通过创建两个按钮来实现排序功能:相关性和日期。

我已按以下方式进行设置:

<div ng-init="sort=false">
<a ng-click="sort=true">Date</a>
<a ng-click="sort=false">Relevance</a>

然后在容器上显示结果:

<div eui-sort="ejs.Sort('post_date').order('desc')" eui-enabled="sort" >

使用ng-init设置的值会正确影响初始排序顺序,当我点击date列表按预期排序时,但当我点击relevance时,列表不会重新排序好像eui-enabled设置为false

我猜测Angular的知识不足导致我过度简化这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我怀疑你正在遇到AngularJS dot-problem,即:那种。避免这种情况的一种方法是在eui-sort范围内修改sorting.sort:

<div eui-sort="ejs.Sort('post_date').order('desc')" eui-enabled="true">
<a ng-click="sorting.enabled=true">Date</a>
<a ng-click="sorting.enabled=false">Relevance</a>
</div>

在此示例中,eui-enabled仅用于初始化,因为值(true)不会更改。请注意,要引用&#34; sorting:对象,您必须在eui-sort的范围内(即:div内)