我是Backbone的新手,我正在制作一个示例应用,其中我必须包含标签。问题是我有一组城市,我想为每个城市创建一个选项卡(从服务器获取集合)。我创建了一个名为TabsView的视图,它在渲染功能中将集合传递给模板,然后这个视图遍历集合并呈现标签。
我想要做的是第一个标签显示为“有效”。我目前所做的是每个选项卡都有一个到路由器的路径的href,它使用jquery将它的类更改为活动状态。不知道这是否是最好的方法,但它有效。也许有更好的方法。此外,当用户单击选项卡时,我希望能够呈现其他视图。
希望我明白自己。谢谢,欢呼,马丁
答案 0 :(得分:4)
好的,我解决了这个问题,做了类似下面的事情:
var Tabs = Backbone.View.extend({
template: JST['tabs'],
events: {
'click li' : 'switchTab'
},
tagName: 'ul',
className: 'nav-tabs',
render: function() {
this.renderTabs();
return this;
},
renderTabs: function() {
this.$el.html(this.template({ cities: this.cities }));
this.$('li:first').addClass('active');
},
switchTab: function(event) {
var selectedTab = event.currentTarget;
this.$('li.active').removeClass('active');
this.$(selectedTab).addClass('active');
}
});
它工作正常,也许可以改进。