2012-12-04 5 views
3

J'apprends le Backbone.Est-ce qu'une vue Backbone nécessite toujours un modèle Backbone?

Je me demande si une vue Backbone nécessite toujours un modèle Backbone. Par exemple, disons que j'ai un panneau qui contient deux panneaux enfants. Par exemple, disons que j'ai un panneau qui contient deux panneaux enfants. La façon dont je structurer c'est une vue parent pour le panneau principal, puis deux vues de l'enfant pour les panneaux enfants ...

var OuterPanel = Backbone.View.extend({ 
     initialize: function() { 
      this.innerPanelA = new InnerPanelA(innerPanelAModel); 
      this.innerPanelB = new InnerPanelB(innerPanelBModel); 
     }, 
    }); 

    var outerPanel = new OuterPanel(); 

La vue parent est vraiment juste un conteneur. Il peut y avoir des contrôles, mais aucune donnée qui doit être conservée. Est-ce la bonne façon de le faire? Ou est-ce une mauvaise pratique?

Thnx (à l'avance) pour votre aide

+2

Réponse courte: Non. – Yasser

Répondre

5

Comme le dit Backbone.View docs

vues Backbone sont presque plus convention qu'ils sont le code - ils ne déterminent pas quoi que ce soit au sujet de votre HTML ou CSS vous, et peut être utilisé avec n'importe quelle bibliothèque de templates JavaScript.

En d'autres termes, si vous ne disposez pas d'un modèle, ne pas utiliser un modèle. D'autre part, j'injecter les modèles enfants comme des options à l'instance de vue externe et ne pas compter sur les variables globales, quelque chose comme ceci:

var OuterPanel = Backbone.View.extend({ 
    initialize: function(options) { 
     this.innerPanelA = new InnerPanelA({model: options.modelA}); 
     this.innerPanelB = new InnerPanelB({model: options.modelB}); 
    } 
}); 

var outerPanel = new OuterPanel({ 
    modelA: innerPanelAModel, 
    modelB: innerPanelBModel 
});