Backbone中的选项卡

时间:2012-07-21 21:50:24

标签: backbone.js tabs

我是Backbone的新手,我正在制作一个示例应用,其中我必须包含标签。问题是我有一组城市,我想为每个城市创建一个选项卡(从服务器获取集合)。我创建了一个名为TabsView的视图,它在渲染功能中将集合传递给模板,然后这个视图遍历集合并呈现标签。

我想要做的是第一个标签显示为“有效”。我目前所做的是每个选项卡都有一个到路由器的路径的href,它使用jquery将它的类更改为活动状态。不知道这是否是最好的方法,但它有效。也许有更好的方法。此外,当用户单击选项卡时,我希望能够呈现其他视图。

希望我明白自己。谢谢,欢呼,

马丁

1 个答案:

答案 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');
  }
});

它工作正常,也许可以改进。