Backbone Marionette und RequireJS-Module
Ich bin Anfang eine groß angelegte javascript-Anwendung, die mit Marionetten. Eine Marionette Anwendung hat ein Konzept der Programm-Module und RequireJS wird auch verwendet, um brechen code in Module,
derzeit habe ich diese für den Anfang von meiner Bewerbung:
require([ "jquery", "underscore", "backbone", "marionette" ],
function ($, _, Backbone, Marionette) {
$(function() {
App = new Marionette.Application();
App.addInitializer(function(options) {
App.addRegions({
mainArea: "#mainArea"
});
});
App.on("start", function() {
//done starting up, do stuff here
});
App.start();
});
});
Wenn ich wollte, um eine Ansicht hinzufügen würde ich etwas wie das folgende in eine Datei?
require([ "jquery", "underscore", "backbone", "marionette" ],
function($, _, Backbone, Marionette) {
App.module("FirstView", function(FirstView, App, Backbone, Marionette, $, _) {
return Marionette.ItemView.extend({
//define view stuff in here
});
});
});
Ich bin mir nicht sicher, wie ich diesen code ausführen, tatsächlich, jede Hilfe ist sehr willkommen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Marionette der Module sind dazu gedacht, eine einfache alternative zu RequireJS (und andere) Modul-Formate. Ich würde nicht empfehlen, mit Ihnen zusammen, wie bereits in der wiki:
https://github.com/marionettejs/backbone.marionette/wiki/AMD-Modules-vs-Marionette's-Module
IMHO mag ich zu unterscheiden von der Sicht oben "Marionette der Module sind dazu gedacht, eine einfache alternative zu RequireJS (und andere) Modul-Formate."
Ich gerne einen Vergleich ziehen zwischen Require.js Module und Marionette.js Module mit C#'s assembly und namespace-Konzepte. Marionette.js's Module helfen uns die Gruppe Definitionen der verschiedenen Bausteine basieren auf der Funktionalität, während Require.js könnte verwendet werden, um load /inject Abhängigkeiten.
Wieder, das ist meine Ansicht /Verständnis (basierend auf Gesprächen mit David Sulc auf seinem Buch 'die Strukturierung Backbone-Code mit RequireJS und Marionette-Module'), die geholfen hat, in meine Umsetzung. In einer Weise, die wir verwenden können Marionette.js und Require.js zusammen, wie unten beschrieben.
Beispiel unten ist eine kleine Bibliothek-Manager-app (Beispiel), die online gefunden werden @ https://github.com/srihari-sridharan/LibraryManagement. Der code unten (weglassen von unbedeutenden bits und Stücke) erzeugt das application-Objekt und rendert die Liste der Bücher, die nach der Initialisierung. Bitte finden Sie hier - https://github.com/srihari-sridharan/LibraryManagement/blob/master/app/js/app.js
Nächsten definieren wir das Modul /sub-Module basierend auf der Funktionalität. Dies wird auch ein Modul bestimmten router-und Draht-Steuerungen und Griff Routen. Beachten Sie die aufrufen-Controller. Dieser code ist in https://github.com/srihari-sridharan/LibraryManagement/blob/master/app/js/modules/books/booksModule.js
Schließlich haben wir die Definitionen für unsere Ansichten, Modelle und Steuerungen. Diese Definitionen gebunden werden, um Modul - /Submodul-Objekte.
Den code anzeigen, wird unten angezeigt. Ein Blick auf die .verlängern () - Methoden. Sie sind Variablen zugeordnet befestigt, um die BooksModule.Liste.Anzeigen sub-Modul. https://github.com/srihari-sridharan/LibraryManagement/blob/master/app/js/modules/books/list/listView.js
Den controller-code ist unten abgebildet. Diese wird aufgerufen, aus dem code in booksModule.js. Die controller-definition angehängt ist BooksModule.Liste sub-Modul.
Damit require.js Module und marionette koexistieren können. Im folgenden sind die Vorteile.
Bitte posten Sie Ihre Gedanken. Vielen Dank für das Lesen.
PS: Basierend auf den oben genannten Punkt anzeigen, finden Sie die änderungen an Ihrem Beispiel unten: