【发布时间】:2015-06-26 20:04:12
【问题描述】:
我目前正在制作音乐目录,并尝试实现允许用户从 艺术家 和 流派
列表中过滤目录的功能名单:
<ul class="artists">
<li class="title">
<h5>Artists</h5>
<ul class="sub-menu">
<li ng-repeat="artist in music | orderBy:'-views'">
<p ng-click="select(artist.artist)">{{artist.artist}}</p>
</li>
</ul>
</li>
</ul>
我试图构建一个自定义过滤器,但无法完全掌握这个概念,我设法做的是从所选选择中获取值
// value from ng-click
$scope.select = function(value){
filterBy = value;
}
我知道我可以添加过滤器:通过添加 ng-repeat
ng-repeat="artist in music | filter: {artist:'artistName' | orderBy:'-views'"}
但是我如何将 artist: 'value' 更改为从列表中选择的内容
这是我要过滤的主要区域
<div class="item" ng-repeat="artist in music | orderBy:'-views'">
<div class="img">
<img ng-src="{{artist.image}}"/>
</div>
<div class="info">
<h6>{{artist.artist}}</h6>
<p>{{artist.songName}}</p>
</div>
</div>
当视图加载时,所有项目都应该显示,然后如果用户愿意,可以从列表中选择艺术家或流派以过滤到该结果。我的想法是可能将自定义过滤器函数放在点击函数中,因此当用户从列表中选择时,点击函数中的值可以解析到自定义过滤器并使用正确的值更新过滤器。但是,我无法实现。
我对 angular.js 很陌生,所以如果我没有完全正确地解释它,这里是一个 JSfiddle 复制我的项目。
http://jsfiddle.net/0n2qptg6/5/
提前感谢您的任何帮助、建议和批评
【问题讨论】:
标签: javascript angularjs dynamic web-applications filtering