在我的一個模板中,我使用從項目(視頻)列表中提取的不同屬性(流派),並使用這些流派構建過濾器導航。emberjs - 過濾器導航,綁定選定過濾器上的活動類
我模板中的每個類型都使用它的值在我的控制器上調用一個動作。
剪斷控制器:
var VideoListController = Em.ArrayController.extend({
genreFilter: "",
actions: {
filterByGenre: function(genre) {
this.set("genreFilter", genre);
}
},
genres: function() {
var genres = this.get('content').map(function(video) {
return video.get("genre");;
}).filter(function(genre, index, arr) {
return arr.indexOf(genre) == index;
});
return genres;
}.property("content"),
filteredContent: function() {
var content = this.get("arrangedContent");
if (!Ember.isEmpty(this.get("genreFilter"))) {
return content.filterBy("genre", this.get("genreFilter").valueOf());
} else {
return content;
}
}.property("arrangedContent.[]", "genreFilter"),
});
剪斷模板:
<ul>
<li><a href="#" {{action "filterByGenre"}}>ALL</a></li>
{{#each genres}}
<li class="divider"></li>
<li><a href="#" {{action "filterByGenre" this}}>{{this}}</a></li>
{{/each}}
</ul>
什麼,我想要做的,就是把active
類上與控制器的genreFilter
對應的過濾器的導航項目。即
如果genreFilter
='',則ALL
將具有active
類。
如果genreFilter
='喜劇',則comedy
將具有active
類。
這基本上與您的{{linkto}}
導航上燼能如何自動分配active
相同。