0

私はバックボーン開発の初心者で、バックボーンを使用してライフサイクル管理を開発しようとしています。プロジェクトには 4 つのメイン タブがあり、すべてのタブにサブタブがあります。コントローラー、モデル、ビューなどを使用してメイン タブを作成しました。また、ナビゲーション スライダーも追加しました。

それはすべて正常に機能していますが、メインタブ内にサブタブをロードする方法について混乱しています。私の主な質問は、サブタブのコントローラーをどこで開始するかです。メインタブのコントローラーのinitializeメソッドからですか?

コードの概要: - メイン コントローラーは、各タブのコレクションとモデルを読み込みます - メイン コントローラーは、メイン タブがクリックされると、各タブのビューを表示します

// Declare pages collection
var mainpages = new TST.Collections.Pages([ new SCL.Models.Page({
    id : 1,
    name : "Main Tab1",
    route : "!/tab1",
    _controller : TST.Controllers.Tab1
}), new SCL.Models.Page({
    id : 2,
    name : "Main Tab2",
    route : "!/tab2",
    _controller : TST.Controllers.Tab2
}) ], {
    current : 1
});

// show the main layout
var layout = new TST.Layouts.Main({
    collection : mainpages
});
this.options.region.show(layout);

// show the menu
var menu = new TST.Views.Nav({
    collection : mainpages
});
layout.menu.show(menu);

リージョンはメイン レイアウトで宣言されます。-> self.content.show(options.view, self.options.collection.goRight); を使用して、タブクリックで各タブを表示します。ここで、自己 = これ

各タブのコントローラーはこんな感じ

SCL.Routers.Tab1= Backbone.Marionette.AppRouter.extend({
    appRoutes : {
        "!/request" : "start"
    }
});

  SCL.Controllers.Tab1= TST.Framework.Controller.extend({
    initialize : function(options) {
        this.layout = new TST.Layouts.Tab1();
        this.router = new TST.Routers.Tab1({
            controller : this
        });
    },

    start : function() {
        app.vent.trigger("page:change", {
            view : this.layout
        });
    }
});

それでは、Tab1の下にサブタブをロードするにはどうすればよいですか??

あなたのアイデアを共有して、私を助けてください... 事前に感謝します!

4

1 に答える 1

0

Derick Bailey の元の記事 ( http://lostechies.com/derickbailey/2012/04/05/composite-views-tree-structures-tables-and-more/ ) に基づいて、同様の問題に関するブログ投稿を書きました。ここ: http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/

本質的に非常に似ているため、ブログ投稿の内容を適用して自分の課題を解決できるはずです。

于 2013-06-04T08:30:02.353 に答える