8

私のアプリは機能しているとしましょうが、私は物事を行うための最善の方法を学び、見つけることが大好きです。バックボーン ルーターを構成以外の何物にも変えない
というこの投稿に本当に感謝しています。 そして、使用していない以下のbbclonemailが必要です。

実際、私の実装はモノリシック ブロック ( app.jsrouter.js ) です。

ここに私の質問があります:
1) 何をrouter module router.js返す必要がありますか? 2)から
どのように削除すればよいですか? 3) 何を返す必要がありますか? 4)他の多くのアプリ (メイン、タスク、プロジェクトなど ) をどのように切り離す必要がありますか?The Callback Functionsrouter.js
app module app.js
app.js


app.js

// app.js
define([
'router'
// some modules
],
function (router, Backbone, HeaderView)
{
    "use strict";
    var myApp = new Backbone.Marionette.Application();

    myApp.addRegions({
        header: '#header',
        sidebar: '#sidebar',
        mainColumn: '#main-column',
        rightColumn: '#right-column'
    });

    myApp.initHeader = function () {
        var headerView = new HeaderView();
        myApp.header.show(headerView);
    }

    // many others many views

    myApp.start();

    myApp.initialize = function() {
        router.initialize();
        Backbone.history.start();
    }

    return myApp;

});

router.js

// router.js
define([
// some modules
],
function (Backbone)
{
    "use strict";
    var AppRouter = Backbone.Marionette.AppRouter.extend({

        routes: {
            tasks: 'tasks',
            projects: 'projects',
            // many others  keys/values
            '*defaults': 'home'
        },

        getApp: function ()
        {
            var mainApp;
            require(['js/app'], function (app) {
                mainApp = app;
            });
            return mainApp;
        },

        home: function()
        {
            var app = this.getApp();
            app.initHeader();
            app.initSidebar();
            app.initTaskDetails();
        },

       // many others callbacks

    });

    var initialize = function() {
        new AppRouter;
    };
    return {
        initialize: initialize
    };

});
4

1 に答える 1

1

ルーター部分については、次のようにする必要があります。

router.js

// router.js
define([
     'rooterController'
// some modules
],
function (Backbone, rooterController)
{
    "use strict";
    var AppRouter = Backbone.Marionette.AppRouter.extend({

        routes: {
            tasks: 'tasks',
            projects: 'projects',
            // many others  keys/values
            '*defaults': 'home'
        }
    });
    return new AppRouter({constroller: rooterController})
});
于 2012-06-15T12:04:21.947 に答える