Sorteermenu renderen met Backbone.js

Ik gebruik Backbone.js om een ​​lijst met items weer te geven. Dit werkt, ik heb een model, verzameling en weergave.

What I want to do is have a Main Nav & Sub Nav which gives sorting options for the list items.

De hoofdnavigatie is slechts twee items, dus ik heb die hard gecodeerd op de pagina. Voor de subnavigator zou ik dat dynamisch willen renderen op basis van de Main Nav-selectie. De sub nav-items zijn statisch.

Ik stel een gebeurtenis in om te observeren wanneer het MainNav-item verandert:

events : {
    "click #items-main-nav" : "onNavMainClick"
},

Mijn vraag is, waar definieer ik de subnav-items voor de twee Main Nav-items? En hoe ik ze render. En waar zou dit allemaal in het backbone.js viewbestand moeten leven?

Bedankt

1

1 antwoord

U hebt één weergave die de subNAV-container rendert, in de subNAV-container plaatst u een sjabloon, afhankelijk van het item dat u op de MainNav hebt geselecteerd. Ik denk dat het er als volgt uit moet zien ....

var subNav = Backbone.View.extend({

  tagName: "div",

  events: {
    "click #items-main-nav" : "onNavMainClick"
  },

  onNavMainClick : function(event){
    //determine which item they clicked on the main nav
    //and call render with correct paramters
    render(option);
  },

  render: function(option) {

    $(this.el).html(option.template(this.model.toJSON()));
    return this;
  }

});
2
toegevoegd
Hoe definieer ik het model? Het zou statisch zijn en voor elk item een ​​titel & val bevatten? Hoe definieer ik dat en geef ik het door aan de snor-sjabloon? Bedankt
toegevoegd de auteur AnApprentice, de bron
U kunt twee modellen een voor elk item in de lijsten hebben en in plaats van een andere sjabloon weer te geven, zou u dezelfde sjabloon maar met verschillende modellen renderen.
toegevoegd de auteur Jose Vega, de bron