是否可以通过以下方式对过滤器变量使用动态值:
<div ng-repeat="playlist in playlists" >
<a class="view-detail" ng-href="#/playlist/{{playlist.id}}">{{playlist.playlistName}}</a>
<a ng-href="#/playlist/{{playlist.id}}">check out this playlist >></a>
<span ng-repeat="genre in genres | filter:{name:'playlist.playlistGenre'}">
<img ng-src="{{genre.image}}">
</span>
</div>
因此,它是重复中的重复 - 它不会像这样显示,但是如果我硬编码过滤器变量将返回的值之一,那么它可以工作 -
还是我应该重新考虑我的方法——
非常感谢
filter:{name:'playlist.playlistGenre'}
它查找名称为字符串"playlist.playlistGenre"的流派。如果我理解正确,您想要的是显示名称与playlist
的字段playlistGenre
具有相同值的流派。
所以你想要
filter:{name:playlist.playlistGenre}
也就是说,这是非常低效的。我想有一种流派有一个给定的名字。因此,与其循环遍历每个播放列表的所有流派,不如直接在播放列表中设置流派,或者至少使用包含每个名称流派的哈希:
$scope.genresByName = {};
genres.forEach(function(genre) {
$scope.genresByName[genre.name] = genre;
});
然后
<div ng-repeat="playlist in playlists" >
<a class="view-detail" ng-href="#/playlist/{{playlist.id}}">{{playlist.playlistName}}</a>
<a ng-href="#/playlist/{{playlist.id}}">check out this playlist >></a>
<span><img ng-src="{{genresByName[playlist.playlistGenre].image}}"></span>
</div>