Backbone Projektorganisation

Ich habe ein bisschen Probleme damit, meine Backbone-Anwendung sauber und solide zu organisieren. Ich verwende Requirejs, Handlebars und das Requirejs-Text-Plugin, um HTML-Ansichten dynamisch zu laden. Nehmen wir zur Vereinfachung einfach an, die Site hat die folgenden Seiten:

Zuhause zeigt eine Sammlung von Produkten an

Über statische Seite

Konto enthält Kontoinformationen. Produkte gekauft, ermöglicht verschiedene Updates. Viel Funktionalität. Hat Registerkarten, um zu verschiedenen Abschnitten zu navigieren.

So gehe ich für ein SPA, das neue Seiten in ein div lädt ('.backbone-view'). Sollte ich eine allgemeine AppView mit einem el: $ ('. Backbone-view') haben, das aufgerufen wird, wenn sich die Route ändert und dann die entsprechende Vorlage lädt? Oder sollte ich eine Ansicht für jede Seite (homeView, aboutView, accountView) haben, deren el auf backbone-view gesetzt ist?

Darüber hinaus ... brauche ich ein Modell für etwas anderes als Produkte? Für die statische About-Seite lade ich einfach die HTML-Vorlage und das wars. Aber für Produkte muss ich die Produktauflistung aufrufen, die jede Produktansicht darstellt, wobei jede mit einem Produktmodell verknüpft ist. Das ist in Ordnung ... aber wo initialisiere ich diese Produktkonstrukte? Wenn ich auf die Homepage rufe, mache ich das dort? Ich habe diesen Pseudocode:

  routes: {
        '': 'home',
        'about': 'about',
        'my-account': 'myAccount',
        '*default': 'home'
    },

    'home': function() {
        // Grab template for home page

        // Load up products

        // Replace $('.backbone-view') with home page template populated with products
    },

    'about': function() {
        // Grab about template and replace $('.backbone-view') with its contents
    },

    'myAccount': function() {
        MIND EXPLOSION
    }

Ich denke, ein großes Problem ist, dass mir der Zweck von Ansichten nicht klar ist. Können sie einfach für Seitenübergänge verwendet werden oder sollten sie immer ein Modell haben? Wenn erstere, würde ich zumindest eine AppView und dann Views für jede Seite brauchen, oder? Ich habe keine Ahnung, wohin ich jeden Schritt delegieren würde ... daher ist jede Hilfe willkommen.

Danke für die Hilfe

Antworten auf die Frage(1)

Ihre Antwort auf die Frage